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中的元素

 

posted on 2018-01-08 18:37  艾谁谁  阅读(95)  评论(0)    收藏  举报