字典
字典是Python中一个非常有用的原生数据类型,一般序列是用连续的整数作为索引,而字典是以关键字作为索引,且关键字要是任意不可变类型。理解字典时可以把它看做无序的键:值对(key:value对)集合,同一个字典中键必须互不相同,利用{}可以初始化一个空的字典。
In [77]: dict1 = {} In [78]: type(dict1) Out[78]: dict
如果确保一个键不在字典中,可以利用下面的方法向字典中添加元素。
In [81]: dict1 = {'a':1,'b':2} In [82]: dict1['c'] = 3 In [83]: dict1 Out[83]: {'a': 1, 'b': 2, 'c': 3}
而如果这个键已经存在于字典中了,就表示为这个键赋值。
In [84]: dict1['b']=4 In [85]: dict1 Out[85]: {'a': 1, 'b': 4, 'c': 3}
keys()方法能够一次性获得字典中所有的键,values()方法则用来获取值,items()则是获取键值对的元组形式。
In [86]: list(dict1.keys()) Out[86]: ['a', 'b', 'c'] In [87]: list(dict1.values()) Out[87]: [1, 4, 3] In [88]: list(dict1.items()) Out[88]: [('a', 1), ('b', 4), ('c', 3)]
元组形式或者列表中嵌套的元组的形式都可以转换成字典,因为要保持不可变性。
In [89]: dict2 = dict([('e',5),('f',6)]) In [90]: dict2 Out[90]: {'e': 5, 'f': 6} In [91]: dict3 = dict((('g',7),('h',8))) In [92]: dict3 Out[92]: {'g': 7, 'h': 8}
当然也可以通过'='赋值的形式创建一个字典。
In [93]: dict5 = dict(i = 8,j = 9) In [94]: dict5 Out[94]: {'i': 8, 'j': 9}
查询一个键是否存在一个列表中。
In [96]: 'i' in dict5 Out[96]: True In [97]: 'a' in dict5 Out[97]: False
根据键查询对应值的两种方式:
- 1、直接利用键的名字索引,不足的是如果字典中没有这个键则会发生报错。
- 2、利用get方法,可以设置不存在键名的情况下的返回值,默认返回None。
In [98]: dict5['i'] Out[98]: 8 In [99]: dict5['a'] KeyError: 'a' In [101]: dict5.get('i') Out[101]: 8 In [103]: dict5.get('a',"没有") Out[103]: '没有'
字典中的几种删除方式:
- 1、pop()方法,与列表不同的是必须要传入一个字典中已有键的参数。
- 2、popitem(),类似于列表中的pop(),随机删除一组键值对而非删除最后一个,因为字典本身无序。
- 3、del方法,用于删除整个字典
In [107]: dict3 Out[107]: {'g': 7, 'h': 8} In [109]: dict3.pop('g') Out[109]: 7 In [110]: dict3.popitem() Out[110]: ('h', 8)
clear()方法可以清楚字典中所有的键值对。
In [104]: dict5.clear() In [105]: dict5 Out[105]: {}
setdefault()方法可以传入一组键值对,如果字典中已有同名键,则返回键在字典中对应的值,否则将传入的键值对存入字典中。
In [115]: dict2 Out[115]: {'e': 5, 'f': 6} In [117]: dict2.setdefault('e',1) Out[117]: 5 In [118]: dict2.setdefault('g',7) Out[118]: 7 In [119]: dict2 Out[119]: {'e': 5, 'f': 6, 'g': 7}
update()方法可以用来更新字典:
- 如果字典中已有传入的键,则更新键对应的值。
- 如果没有,则将传入的键值对存入字典中。
In [121]: dict2.update({'g':10}) In [122]: dict2 Out[122]: {'e': 5, 'f': 6, 'g': 10} In [123]: dict2.update(dict1) In [124]: dict2 Out[124]: {'e': 5, 'f': 6, 'g': 10, 'a': 1, 'b': 4, 'c': 3}
总结
上面就是五种数据类型基本操作的一个概括,其中比较常用的三种就是字符串、列表和字典,应该重点掌握,然后有的伙伴一定好奇为什么没写表达式?莫急,在后面文章中一定是会有的。上面的基操都是非常基础的,一定要熟悉,并且注意每个数据类型的特点,不要相互混淆啦。