一 元组
对于元组我们可以把他看成一个不可变的列表
# 元组:在()内用逗号分隔开的能够存多个值,对于元组来说列表有的一些功能它基本上都有,
# 1、按索引取值(正向取+反向取):只能取
# 2、切片(顾头不顾尾,步长)
# 3、长度
#4、成员运算in和not in
#5、循环
# age=(11,22,33,44,55,66,77,88,99,90)对于元组来说他相当于就是age=tuple(11,22,33,44,55,66,77,88,99,90) #按照索引取值: # age=(11,22,33,44,55,66,77,88,99,90) # print(age[0]) # 同样可以正向或者反向取,但是有一点就是元组只能取,而不能改。 #tuple可以作为一种操作: # s='dfdkfkfugg' # t=tuple(s)#可以将字符串转换成元组,在这个循环的过程实际上是一个循环的过程,把字符串中的字符一个一个转换成tuple的形式放到元组中去。
总结:可存多个元素,元素不可变。
二 字典
字典能够存多个值,但是是以key—value的形式存取,key与value在字典中是一个映射关系,通过key来取值,速度快。
# info={'name':'james','sex':'female','age':33} # 在这个过程中,本质上来说相当于: # info=dict({'name':'james','sex':'female','age':33})的一个过程。 # 等于info=dict(name='james',sex='female',age=33) # 等于info=dict(['name':'james'],['sex':'female'],['age':33]) # 等于{}.fromkeys(('name','sex':,'age'),None)
# 那么对于字典中的key是不可变的,对于value是可变的。
2.1 字典的存取值
按key存取值 # dic={'nike':500,'anta':100,'lining':200,'name':'james'} # info=dic['nike']#将‘nike’所对应的值取出来 # l=dic.get('fg',None)#从字典中取键值,get的好处就是,即使输入错误的键值,程序不会报错,只是不能取到键值。 # for item in dic: # print(dic[item])#如果想取出键,则直接打印item。若想打印出键值则打印dic[item] # print(item,dic[item])#取出键值对 # print(dic.keys())#以dict_keys(['nike', 'anta', 'lining', 'name'])的形式输出字典的key值。 # print(dic.values())#以dict_values([500, 100, 200, 'james'])形式输出字典的values。 # print(dic.items())##以dict_items([('nike', 500), ('anta', 100), ('lining', 200), ('name', 'james')])的形式输出键值对。
2.2 循环与删除
#那么在字典中,删除字典里面的内容我们可以用pop和del #当然首选pop # print(dic.pop('nike'))#pop会根据输入的键弹出对应的values,同时可以取出弹出的values #循环 # 那么同样的我们可以按照循环来取出字典中的键值对 # for item in dic: # print(dic[item])#如果想取出键,则直接打印item。若想打印出键值则打印dic[item] # print(item,dic[item])#取出键值对,同时将键值取出。 #那么同样是同时将键值对取出: 1 # # for item in dic: # print(item,dic[item]) # 2 # #print(dic.items()) ##取出来的形式不同
三 集合
# st1={'1','2','3','4'}
# 集合:可以包含多个元素,用{}括起来的,用逗号分割。
# 集合的元素遵循三个原则:
# 1:每个元素必须是不可变类型(可hash,可作为字典的key)这一点与元组是一样的。
# 2:没有重复的元素,所以集合又具有去重的功能。
# 3:无序,所以对于集合的取值不能按照索引来取值。
# 集合的运算 # 集合的运算分为: # 交集 1# # st1={'1','2','3','4'} # st2={'1','5','7','8'} # print(st1&st2) 2# # st1={'1','2','3','4'} # st2={'1','5','7','8'} # st1.intersection(st2) # print(st1.intersection(st2)) #并集 1# # st1={'1','2','3','4'} # st2={'1','5','7','8'} # print(st1|st2) 2# # st1={'1','2','3','4'} # st2={'1','5','7','8'} # print(st1.union(st2)) # 交叉补集 # 1# # st1={'1','2','3','4'} # st2={'1','5','7','8'} # print(st1^st2) # 2# # print(st1.symmetric_difference(st2)) # 差集 # 1# # st1={'1','2','3','4'} # st2={'1','5','7','8'} # print(st1-st2) # print(st2-st1) # 2# # print(st1.difference(st2)) # print(st2.difference(st1)) # 父集与子集 # 父集与子集是一个相对应的关系, # st1={'1','2','3','4'} # st2={'1','2',} # 那么这个时候就说st1是st2的父集, # 相对应的st2就是st1的子集 # st1={'1','2','3','4'} # st2={'1','5','7','8'} # # print(st1&st2) # # print(st1|st2) # # print(st1-st2) # # print(st2-st1) # print(st1^st2) # st1={'1','2','3','4'} # st2={'1','2','3','4'} # print(st1>=st2) # print(st1<st2) # 集合去重: # 集合去重的原理就是,集合中不能含有重复的元素 # # 现在我们定义一个列表: # l=['1','2','sd','er','a','a','1'] # st=set(l) # print(st) # # 输出结果为:可以看出输出的顺序没有按照列表的顺序,因为集合是无序的。而重复的部分被去除 # {'sd', 'er', 'a', '1', '2'} #那么我们如何实现在不改变列表中的顺序的情况下去重呢 1# # l=['1','2','sd','er','a','a','1'] # st=set() # l1=[] # for item in l: # if item not in st: # l1.append(item) # print(l1) 2# # l1=[] # for item in l: # if item not in l1: # l1.append(item) # print(l1)