python数据类型之字典:
特点:取值方便,速度快
查询:
dict[key] #若key值不存在,则会报错
dict.get(key) #若key值不存在,则返回None(ps:key后还可加一参数,表示当查找的key值不存在时,则返回输入的默认值)
增加(字典是无序的):
dict[key] = value
dict.setdefault(key,value)
修改:
同增加,如下:
dict[key] = value #若key存在的话,便修改它的值,但若key不存在的话,就新增一个
删除:
dict.pop(key) #删除某个key
dict.popitem() #随机删除一个
del dict[key]
dict.clear() #清空字典
其它:
dict.keys() #获取到字典所有的key
dict.values() #获取到字典所有的values
dict.hash_key(key) #Python2里面字典有这个方法,作用是判断有没有这个key
Python3可以直接这样判断:if key in dict: #判断key是否在这个字典里头
循环:
直接循环字典,只是得到字典的所有key值
用dict.items()方法可同时得到key和value值,但是把字典的k和v转成了一个二维数组,如下(ps:实际上并不是一个list,即不能通过下标取值,需要通过list()函数转成list后才能通过下标取值):
for k,v in dict.items() :
print(k,v)
以下这种方法最高效,性能好:
for k in dict:
print(k,dict[key]/dict.get(k))
python数据类型之元组:
元组也是一个list,只不过是不可变的
若元组中只有一个元素,需要在其后多加个逗号,如a = (2,)
常用的方法:
count() #找个数
index() #返回下标
#可变变量 list、字典
#不可变变量 元组、字符串
再补充一点:
list = [1,1,2,3,4,5,6,7,8,9]
list2 = list[:] #深拷贝 内存地址会改变
list2 = list #浅拷贝 内存地址不会改变
集合
集合的特性:天生去重;集合是无序的,所以没有办法通过下标取值
s = set() #空的集合
s2 = {'1','2','3'}
s3 = {'1','2','5'}
添加元素:
s2.add('8')
删除元素:
s2.remove('1')
s2.pop() #随机得删除一个元素
取交集:
s2.intersection(s3)或者s2&s3
取并集:
s2.union(s3)或者s2|s3
取差集:
s2.difference(s3)或者s2 -s3 #取在s2中存在,在s3中没有的
将一个列表强制转换成集合,可去重list中的元素
浙公网安备 33010602011771号