tuple 元组

1 #定义

2 temp = (2, ) #规范定义,单个元素的元组

3 tem = 2, #可行,但不规范定义

4 tep = () #空元组

5

6 tp = (1, 'ss', 3.5, [6, 'dd']) #元组中 可存放任何的 数据类型 int、float、str、bool、字符串、字典、列表等

7 #通过索引获取元组中的元素

8 print(tp[3]) #输出:[6, 'dd']

9 print(tp[3][1]) #输出:'dd'

10 print(tp[::-1]) #输出:([6, 'dd'], 3.5, 'ss', 1)

元组解包

1 #元组解包

2 c1, c2, c3, c4 = (3, 'd', 5.6), 7.8, 'ee', 4 < 5

3 print('''

4 c1类型:{},c1 = {}5 c2类型:{},c2 = {}6 c3类型:{},c3 = {}7 c4类型:{},c4 = {}8 '''.format(type(c1), c1, type(c2), c2, type(c3), c3, type(c4), c4))9

10 #输出:

11 c1类型:,c1 = (3, 'd', 5.6)12 c2类型:,c2 = 7.8

13 c3类型:,c3 =ee14 c4类型:,c4 = True

list 列表

1 #定义

2 li = [1] #单个元素的列表

3 ls = [1, 'ss', 3.5, [6, 'dd'], 4 < 5] #字典也可存放任何的数据类型

4

5 #通过索引获取列表中的元素6 print(ls[3]) #输出:[6, 'dd']

7 print(ls[3][1]) #输出:'dd'

8 print(ls[::-2]) #输出:[True, 3.5, 1]

列表操作

1 name = ['妲己', '安琪拉', '嫦娥', '小乔', '周瑜']2

3 #append() 列表最后新增1个元素,仅1个参数

4 name.append('高渐离')5 print(name) #输出:['妲己', '安琪拉', '嫦娥', '小乔', '周瑜', '高渐离']

6

7 #extend() 以元组、列表的形式,可添加多个元素

8 name.extend(['甄姬', '嬴政', '武则天']) #name=['妲己', '安琪拉', '嫦娥', '小乔', '周瑜', '甄姬', '嬴政', '武则天']

9

10 #insert(index, arg) 在列表中指定位置,插入元素

11 name.insert(3, '王昭君') #name=['妲己', '安琪拉', '嫦娥', '王昭君', '小乔', '周瑜']

12

13 #reverse() 列表 倒序,无参数

14 name.reverse()15 print(name) #输出:['周瑜', '小乔', '嫦娥', '安琪拉', '妲己']

16

17 #index() 查找指定字符串并返回索引,若字符串不存在,将报错

18 print(name.index('小乔')) #输出:3

19

20 #pop(-2) 删除指定索引的元素,无参数时,默认删除列表最后一个

21 name.pop(-2) #name=['妲己', '安琪拉', '嫦娥', '周瑜']

22

23 #remove() 删除找到的第一个指定元素,没有找到要删除的元素,报错

24 name.remove('安琪拉') #输出:['妲己', '嫦娥', '小乔', '周瑜']

25

26 #count() 返回指定元素 在列表中存在的次数

27 name.count('小乔') #输出:1

28

29 #clear() 清空列表,无参数

30 name.clear() #输出:[]

31

32 #del

33 del name[1:4:2] #删除元素,可通过元素索引、切片

34 print(name) #输出:['妲己', '嫦娥', '周瑜']

35

36 del name #删除列表

列表中的切片操作

1 #索引1-3的元素,被指定字符替换

2 shooter = ['鲁班', '后羿', '孙尚香', '黄忠', '伽罗', '虞姬']3 shooter[1:4] = ['马可波罗', '狄仁杰', '李元芳', '百里守约', '成吉思汗'] #可以用元组、列表 赋值

4 print(shooter) #输出:['鲁班', '马可波罗', '狄仁杰', '李元芳', '百里守约', '成吉思汗', '伽罗', '虞姬']

5

6 shooter[1:4] = '百里守约' #用字符串 赋值

7 print(shooter) #输出:['鲁班', '百', '里', '守', '约', '伽罗', '虞姬']

copy() 复制

1 #copy() 复制列表,无参数

2 name = ['妲己', '安琪拉', '嫦娥', '小乔', '周瑜']3 name1 = name #name1 和 name 是同一个列表,id相同

4 name_copy = name.copy() #创建一个新列表name_copy,值同name, id 不同

5 print(id(name)) #输出:2034224161416

6 print(id(name1)) #输出:2034224161416

7 print(id(name_copy)) #输出:2034224161480

8

9 name[2] = '诸葛亮' #改变原列表name的值

10 print("""

11 name = {}12 name1 = {}13 name_copy = {}14 """.format(name, name1, name_copy))15

16 """

17 name 和 name1 的值,均为:['妲己', '安琪拉', '诸葛亮', '小乔', '周瑜']18 name_copy 值为:['妲己', '安琪拉', '嫦娥', '小乔', '周瑜']19 """

sort()

1 #sort() 对列表中元素(相同类型:字符串、数字),进行升序排序(ASCII)

2 num = [2, 5, 1, 7, 5.5]3 num.sort()4 print(num) #输出:[1, 2, 5, 5.5, 7]

5

6 str1 = ['d', 'D', 'a', 'F', 'G', 'f']7 str1.sort()8 print(str1) #输出:['D', 'F', 'G', 'a', 'd', 'f']

9

10 #对列表中元素类型为 元组/列表的,元组/列表中,第一个元素的类型需相同

11 club = [(7, 'a', 2, 'ss'), (6, 'x'), (0, 1, 'z')]12 club.sort()13 print(club) #输出:[(0, 1, 'z'), (6, 'x'), (7, 'a', 2, 'ss')]

14

15 #列表中的元素需为同一种类型,才能用sort()排序,否则 报错

列表中的元组,元组中的列表

1 #列表中,含有元组

2 list_tuple = ['诸葛亮', '张良', '王昭君', ('安琪拉', '妲己')]3 list_tuple[-1][0] = '甄姬' #试图 将元组元素'安琪拉',修改为‘甄姬’,程序报错

4 list_tuple[-1] = '貂蝉' #列表中的元组 只能作为一个整体被替换

5

6 #元组中的列表

7 tuple_list = ('张良', '王昭君', ['安琪拉', '妲己'])8 tuple_list[-1][0] = '高渐离' #元组中的列表,列表中的元素可被修改 ,但列表不可作为一个整体 被 替换

9 tuple_list[-1] = '周瑜' #错误操作

dict 字典

1 #定义

2 dic = {'key1':'value1', 'key2':'value2',……} #key 必须是唯一的

3

4 #tuple类型数据,可作为key

5 #list 和 dict 不能作为key

6

7 dic_name = {1: '庄周', 'key': 6, ('list', 'tuple'): ([1, 2, 'ss'], (5, 6, 'ee'))}8 print(dic_name[('list', 'tuple')]) #输出:([1, 2, 'ss'], (5, 6, 'ee'))

9

10 #hero1 = {['name', 'age']: 'ss'} # 运行会报错

1 #通过 key 获取/修改 对应的value值

2 hero = {'na1': '庄周', 'na2': '明世隐', 'na3': '孙膑', 'na4': '鬼谷子'}3

4 #获取值

5 print(hero['na1']) #输出:庄周

6 print(hero.get('na3')) #输出:孙膑

7

8 #修改值

9 hero['na2'] = '东皇太一'

10 print(hero) #输出:{'na1': '庄周', 'na2': '东皇太一', 'na3': '孙膑', 'na4': '鬼谷子'}

1 #获取字典中所有的键值对

2 print(hero.items()) #输出:dict_items([('na1', '庄周'), ('na2', '明世隐'), ('na3', '孙膑'), ('na4', '鬼谷子')])

3

4 #将获取的键值对 转化为 list

5 dict_items =list(hero.items())6

7 #通过索引获取

8 print(dict_items[1, 1]) #输出: 明世隐

1 #获取字典中所有的key

2 print(hero.keys()) #输出:dict_keys(['na1', 'na2', 'na3', 'na4'])

3

4 #获取字典中所有的value

5 print(hero.values()) #输出:dict_values(['庄周', '明世隐', '孙膑', '鬼谷子'])

6

7 #清空字典

8 hero.clear()9 print(hero) #输出:{}

10

11 #通过key 删除字典中的 key-value 值对

12 hero.pop('na1') #必须传一个参数key

13 print(hero) #输出: {'na2': '明世隐', 'na3': '孙膑', 'na4': '鬼谷子'}

14

15 #删除字典最后一个键值对,并返回这个键值对,无需传参

16 print(hero.popitem()) #输出:('na4': '鬼谷子')

17 print(hero) #输出:{'na1': '庄周', 'na2': '明世隐', 'na3': '孙膑'}

18

19 #复制字典

20 hero_copy = hero.copy()

fromkeys([key, ……], '默认值')   字典重定义

1 #重定义的单个/多个key, 都是相同的默认值

2 hero_redefined = hero.fromkeys(['key1', 'key2', 'key3'], 'default_value')3 print(hero_redefined) #输出:{'key1': 'default_value', 'key2': 'default_value', 'key3': 'default_value'}

4 print(hero) #输出:{'na1': '庄周', 'na2': '明世隐', 'na3': '孙膑', 'na4': '鬼谷子'}

setdefault("key", "default_value")  为字典中单个key 赋默认值, 参数为 单个键值对,default_value 值可省略

1 #若 key 在字典中存在,则不覆盖默认值;若key在字典中不存在,则创建key,并赋初始值

2 hero.setdefault('na1', '鲁班大师')3 hero.setdefault('new_key', '蔡文姬')4 print(hero) #输出: {'na1': '庄周', 'na2': '明世隐', 'na3': '孙膑', 'na4': '鬼谷子', 'new_key': '蔡文姬'}

update(dict)  将字典参数更新到目标字典中

1 #update(dict) 参数:字典,将hero_temp字典 更新到 hero字典

2 hero_temp = {'na1': '妲己', 'na_new': '安琪拉'}3 hero.update(hero_temp)4 print(hero) #输出:{'na1': '妲己', 'na2': '明世隐', 'na3': '孙膑', 'na4': '鬼谷子', 'ne': '安琪拉'}

字典中新增键值对

1 hero['诗人'] = '李白' #新增键值对

2 print(hero) #输出:{'na1': '庄周', 'na2': '明世隐', 'na3': '孙膑', 'na4': '鬼谷子', '诗人': '李白'}

Python中 可变类型 与 不可变类型

1 #元组 字符串 是不可变类型

2 tup = ('s1', 's2')3 tup = tup.__add__(('s3', 's4')) #tup 元组 新增 元素,类似于 两个字符串拼接,赋值于另一个变量,元组的地址被改变

4 print(tup) #输出:('s1', 's2', 's3', 's4')

5

6 tup[0] = 's0' #运行报错,因为:元组不可被改变,通过索引 修改 元组元素的值,是不可以的

7

8 str1 = 's3 sunday'

9 print(id(str1)) #输出:2444818405680

10 str1 = 'ss' #修改字符串str1标签的指向地址

11 print(id(str1)) #a 指向的地址改变了, 输出:2444818412744

1 #列表 字典 是可变类型,可修改列表、字典的元素,地址id不会变

2 ls = [1, 'ss', 3.5, [6, 'dd'], 4 < 5]3 print(id(ls)) #输出:2674034238152

4 ls[1] = 5 #修改列表元素

5 print(id(ls)) #输出:2674034238152

6 print(ls) #输出:[1, 5, 3.5, [6, 'dd'], True]

字符串 和 列表的区别

1 name = 'Lucy'

2 name.replace('u', 'an')3 print(name) #输出:Lucy

4 re_name = name.replace('u', 'an')5 print(re_name) #输出:Lancy

1 str1 = "lucy"

2 str1[1:3] = 'a' #报错 TypeError: 'str' object does not support item assignment

类型判断 isinstance()

1 #isinstance(object, type) 类型判断,输出结果:True, False

2 int_num = 8

3 print(isinstance(int_num, int)) #判断int_num 类型是否为 int类型,输出:True

4 print(isinstance(int_num, float)) #输出:False

all() 判断元组、列表、集合中,是否存在元素的值为假(即:'', None, 0),是则返回False,否则返回True

1 #all(object)

2 tuple_a = (1, 2, 'we', 'are')3 tuple_b =()4

5 list_a = [1, 2, '', 'are'] #list_a = [1, 2, None, 'are']

6 list_b =[]7

8 set_a = {1, 0, 'we', 'are'}9 set_b ={}10

11 print("""

12 tuple_a:{}13 list_a:{}14 set_a:{}15 """.format(all(tuple_a), all(list_a), all(set_a)))16

17 print("*"*10, """空元组、空列表、空集合,返回Ture18 tuple_b:{}19 list_b:{}20 set_b:{}21 """.format(all(tuple_b), all(list_b), all(set_b)))22

23 # 输出:24 tuple_a:True25 list_a:False26 set_a:False27

28 ********** 空元组、空列表、空集合,返回Ture29 tuple_b:True30 list_b:True31 set_b:True32

any() 判断元组、列表、集合中,是否所有的元素值都为假(即:'', None, 0),是则返回False, 否则返回True

1 #any(object)

2 tuple_a = (4, None, 'ss', 0, '')3 tuple_b =()4

5 list_a = ['', 0, None]6 list_b =[]7

8 set_a = {4, 'ss', None}9 set_b ={}10 print('''

11 tuple_a : {}12 list_a : {}13 set_a : {}14 '''.format(any(tuple_a), any(list_a), any(set_a)))15

16 print('*'*10, '''空元组、空列表、空集合,返回False17 tuple_b : {}18 list_b : {}19 set_b : {}20 '''.format(any(tuple_b), any(list_b), any(set_b)))21

22 # 输出:23 tuple_a : True24 list_a : False25 set_a : True26

27 ********** 空元组、空列表、空集合,返回False28 tuple_b : False29 list_b : False30 set_b : False31

python中所有元素必须为相同类型的数据_Python之常用数据类型详解相关推荐

  1. python数据类型讲解_Python之常用数据类型详解

    tuple 元组 1 #定义 2 temp = (2, ) #规范定义,单个元素的元组 3 tem = 2, #可行,但不规范定义 4 tep = () #空元组 5 6 tp = (1, 'ss', ...

  2. 站长在线Python精讲:Python中集合的交集、并集、差集和对称差集运算方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<Python中集合的交集.并集.差集和对称差集运算方法详解>.主要讲的是集合运算的相关的概念,及运算方法,包括:集合的交集. ...

  3. python列表中的元素可以是不同类型_Python列表中所有元素必须为相同类型的数据。...

    [判断题]定义Python函数时,如果函数中没有return语句,则默认返回空值None. (3.5分) [判断题]函数中必须包含return语句. (3.5分) [单选题]对于序列 s,哪个选项能够 ...

  4. python函数的参数可以接收哪些类型的数据_python强势来袭-0015-函数中的参数-送礼开始...

    接上一讲,这节我们专门介绍python函数的参数处理 本节主要内容 函数的形式参数和实际参数 函数的参数定义规则 函数参数的默认值 函数的可变参数 函数的关键字参数 函数的命名关键字参数 1.3. 函 ...

  5. 在python中如何比较两个float类型的数据是否相等

    奇怪的现象 前几天跟同事聊起来,在计算机内部float比较是很坑爹的事情.比方说,0.1+0.2得到的结果竟然不是0.3? >>> 0.1+0.2 0.300000000000000 ...

  6. python函数的参数可以接收哪些类型的数据_Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数...

    Python参数类型以及实现isOdd函数,isNum函数,multi函数,isPrime函数 一.Python参数类型 形参:定义函数时的参数变量. 实参:调用函数时使用的参数变量. 参数传递的过程 ...

  7. python中quad_python用quad、dblquad实现一维二维积分的实例详解

    背景: python函数库scipy的quad.dblquad实现一维二维积分的范例.需要注意dblquad的积分顺序问题. 代码: import numpy as np from scipy imp ...

  8. 用python实现队列的循环左移和右移的实验原理_python的移位操作实现详解

    因为要将js的一个签名算法移植到python上,遇到一些麻烦. int无限宽度,不会溢出 算法中需要用到了32位int的溢出来参与运算,但是python的int是不会溢出的,达到界限后会自己转为lon ...

  9. python中readlines_python读文件的三个方法read()、readline()、readlines()详解

    文件 runoob.txt 的内容如下:1:www.runoob.com 2:www.runoob.com 3:www.runoob.com 4:www.runoob.com 5:www.runoob ...

最新文章

  1. EZBioCloud:16S和原核基因组物种注释和新种鉴定
  2. 如何使用visual studio 2017创建C语言项目
  3. MaxAlertView 强大的弹框试图
  4. 圣母大学应用计算机数学统计,圣母大学(美国)应用、计算数学与统计学本科专业.pdf...
  5. 10.22 tcpdump:监听网络流量
  6. redis详解- 过期删除策略和内存淘汰策略
  7. SpringCloud工作笔记051---SpringCloud打包部署流程
  8. CreateProcess 执行CMD命令,并重定向输出
  9. C#中如何截取Windows消息来触发自定义事件
  10. Tricks(三十三)—— 自定义 zipWithIndex
  11. 仓央嘉措:如果爱是一场修行
  12. gem install mysql2的时候出现的错误
  13. windows 微信多开脚本
  14. java收割者模式,烧饼丶收割者的动态
  15. Elasticsearch5.3 JAVA Demo 聚合查询
  16. 淘宝双十一实时显示成交数据是怎么实现的?
  17. linux tail 命令 阿星小栈
  18. 字符集和编码 UNICODE、ANSI、UTF-8、GB2312 都是什么鬼
  19. python高级工程师证书_Amireux
  20. 机器学习:线性回归梯度下降预测波士顿房价

热门文章

  1. 易语言API hook MessageBoxA
  2. iis配置权限的问题
  3. java毕业生设计抑郁症患者博客交流平台计算机源码+系统+mysql+调试部署+lw
  4. 当美术生遇上疫情,隔离在家应该怎么安排?
  5. java小项目:危险品检测
  6. kong 网关 结合 nacos 动态路由,服务上下线,加载插件
  7. js 获取滚动条的高度
  8. 逃离超前消费陷阱,宝付呼吁树立正确理性消费观
  9. 6个超酷的 Python 技巧
  10. 腾讯暑期实习生面经(已挂)