列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
name = ['Abbott','Alexander',['Herry',25,'Man']]print(name[2]) #正取第二位,以零开始print(name[-1]) #反取第一位,以一开始name[0] = 'Alex' #替换正取第一位的值name = ['Abbott','Alexander',['Herry',25,'Man']]
print(name[2]) #正取第二位,以零开始print(name[-1]) #反取第一位,以一开始print(name[0:2]) #切片,算头不算尾print(name[0:3:2]) #步长,0:3是切片,:2表示每隔一个取一个值print(len(name)) #长度,在列表中表示有几个值这里显示为3print('Abbott' in name) #True,判断Abbott是否在列表中print('Herry' in name[2]) #True,判断Herry是否在name[2]列表中print('Herry' in name) #如果不指定name[2],则返回Falsename.append('alex') #表示在末尾追加del name[1] #表示删除name列表中的Alexander这个值print(name.remove('Abbott')) #表示删除Abbott这个值,执行时不会有返回值print(name.pop()) #pop函数默认删除最后的值,并且返回删除的值for i in name: if type(i) is list: for n in i: print(n) else: print(i) #循环打印列表以及包含列表中的列表 元组:有序,需要存索引相关信息,不可变,主要的作用是用来读取,并且可以作为字典看key值name = ('Abbott','Alexander',['Herry',25,'Man'])print(name[0]) #取值,从左往右则以零开始print(name[2][0]) #取值,与列表方法一致print(len(name)) #查看长度,这里统计的是元组的值个数print('Abbott' in name) #True,判断Abbott是否在元组中print('Herry' in name[2]) #Trueprint(name.index('Abbott')) #获取索引值print(name.count('Abbott')) #统计元素在元组中出现的次数 字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改注:键keys(),值values(),键值对items()name = { 'A':'Abbott', 'B':'Baez', 'H':{'Harry':25, 'Hahn':22, }}print(name['A']) #按key取值
print(name['H']['Harry']) #按key取值,如果值是字典,那么再次指定keyname['C'] = {'Calderon':23,'Campbell':25} #增加字典if 'C' not in name: name['C'] = [] name['C'].append('Calderon') print(name) #print(len(name)) #统计字典长度,这里显示的是key的个数print('A' in name) #这里返回的是True,判断key是否在字典中,这里不能判断values值print(name.pop('A')) #删除字典中的key,并且返回删除这个key对应的valuesprint(name.pop('C','没有这个key')) #如果删除的是一个字典中没有的key,那么返回后面的值“'没有这个key'”也可以写‘None’print(name.keys()) #打印keyprint(name.values()) #打印key对应的值print(name.items()) #遍历字典的key和valuesfor key in name:print(key) #遍历字典的keyfor values in name.values():print(values) #遍历字典的valuesfor key,values in name.items():print(key,values) #打印key以及对应的valuesfor item in name.items():print(item[0],item[1]) #打印key以及对应的valuesprint(name.get('A','没有这个值')) #get函数返回指定键的值,如果没有这个键则返回后面的值“'没有这个值'”也可以写“None”print(name.popitem()) #删除字典最后一个值,因为字典是无序的所以也是随机删除值print(name.setdefault('C','Calderon')) #有key则返回key的值,如果没有则增加并且返回增加的值print(name.setdefault('C',[]).append('CCCCC')) #返回值是None,这个代码的意思是字典中没有的值则增加dic1={}.fromkeys(['name','age','hobbies'],None) #根据key批量添加values值 集合: 可以包含多个元素,用逗号分割,集合的元素遵循三个原则:1:每个元素必须是不可变类型(可hash,可作为字典的key),2:没有重复的元素,3:无序set1 = {1,2,3,'a','b','c',8,9} #<class 'set'>set2 = {11,22,'b','c',88,9}print(len(set1)) #统计长度print('a' in set1) #判断a是否存在,存在则返回truefor i in set1:print(i) #应为是无序的,所以在for循环打印产出的值位置是不一样的print(set1 | set2) #并集,合并两项,并去重print(set1 & set2) #交集,合并两项,只显示重复的print(set1 - set2) #差集,“-”符号左面减去右面的,并且只显示“-”符号左面的,反过来也是这个意思print(set1 ^ set2) #对称差集,显示两项不重复的值print(len(set1) > len(set2)) #这里显示true,对比set1和set2的长度print(set1 > set2) #这里显示false,集合包含了非数字,所以对比出现显示falseprint(set1.pop()) #随机删除,并返回删除的值print(set1.remove(2)) #删除指定的值,删除成功则返回none,如果删除的值不存在则报错print(set1.discard(3)) #删除指定的值,无论是否删除成功都返回noneprint(set1.add('a')) #增加值,值没有则增加,如果有则不做任何改变,并且都返回noneprint(set1.isdisjoint(set2)) #我这里返回的是False,如果set1和set2没有交集则返回True