python基础3-列表、元组、字典、集合的使用延伸

列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
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)) #长度,在列表中表示有几个值这里显示为3
print('Abbott' in name) #True,判断Abbott是否在列表中
print('Herry' in name[2]) #True,判断Herry是否在name[2]列表中
print('Herry' in name) #如果不指定name[2],则返回False
name.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]) #True
print(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取值,如果值是字典,那么再次指定key
name['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对应的values
print(name.pop('C','没有这个key')) #如果删除的是一个字典中没有的key,那么返回后面的值“'没有这个key'”也可以写‘None’
print(name.keys()) #打印key
print(name.values()) #打印key对应的值
print(name.items()) #遍历字典的key和values
for key in name:print(key) #遍历字典的key
for values in name.values():print(values) #遍历字典的values
for key,values in name.items():print(key,values) #打印key以及对应的values
for item in name.items():print(item[0],item[1]) #打印key以及对应的values
print(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是否存在,存在则返回true
for 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,集合包含了非数字,所以对比出现显示false
print(set1.pop()) #随机删除,并返回删除的值
print(set1.remove(2)) #删除指定的值,删除成功则返回none,如果删除的值不存在则报错
print(set1.discard(3)) #删除指定的值,无论是否删除成功都返回none
print(set1.add('a')) #增加值,值没有则增加,如果有则不做任何改变,并且都返回none
print(set1.isdisjoint(set2)) #我这里返回的是False,如果set1和set2没有交集则返回True

 

posted @ 2017-11-21 22:45  h_lh  阅读(96)  评论(0编辑  收藏  举报