一、创建字典的方式
1.通过{}来创建字典; 2.通过dict()来创建字典; 3.通过zip来创建字典; 4.通过二维元组列表创建; 5.通过字典推导式创建; 6.通过fromkeys创建值为空的字典; 7.其他
通过{}来创建字典 ```python #创建空字典 a = {} ? # 直接赋值创建。注意key都要加引号 a = {'name':'张三','age':18,'address':"江苏"}? ``` 通过dict()来创建字典 ```python #创建空字典 a = dict() # 不是key:value形式,key也没有引号,而是key = value a = dict(name='张三',age=18,address="江苏") # 键值对在列表中写成元组的形式 a = dict([('name',"张三"),("age",18),("address","江苏")])? ``` 通过zip()映射函数来创建字典 ```python # 先写key,再写value, # key和value都存入列表或元组中,不是字典中 a = ('name','age','address') b = ['张三',18,"江苏"] d = dict(zip(a,b)) # zip(b,a)键值对反过来 ``` ? ? 通过二维元组列表创建 ```python list = [('spam', 1), ('egg', 2), ('bar', 3)] dic = dict(list) print(dic) {'bar': 3, 'egg': 2, 'spam': 1} ``` 通过字典推导式创建 ```python dic = {i:2*i for i in range(3)} print(dic) {0: 0, 1: 2, 2: 4}
k = ['key1', 'key2', 'key3'] v = ['value1', "value","value3"] dic = { i:v[k.index(i)] for i in k } ?#键为i,i in k;值为v,通过i在k中的索引来映射关联取值 print(dic) {'key1':'value1','key2':'value2','key3':'value3'} ``` 通过fromkeys创建值为空的字典 ```python e = dict.fromkeys(['name','age','address']) print(e) ?{'name': None, 'age': None, 'address': None} ``` 其他方式 ```python list = ['x', 1, 'y', 2, 'z', 3] dic = dict(zip(list[::2], list[1::2])) ?#将列表切片,然后通过映射函数创建 print(dic) {'y': 2, 'x': 1, 'z': 3} ``` 将两个字典合并 ```python k = {'key1':'value1', 'key2':"value2"} v = {'key3':"value3"} dic = dict(k,**v) print(dic) ?{'key1':'value1', 'key2':,value2','key3':'value3'} ``` 参考链接: [1](https://blog.csdn.net/weixin_43574446/article/details/105022010) [2](https://www.jb51.net/article/157029.htm) [3](https://blog.csdn.net/GrofChen/article/details/92801181)
二、提取字典的键、值及字典的遍历
1.取出该字典所有的键:? - key_list = my_dict.keys() 返回的是列表 ```python key_list = my_dict.keys() print(list(key_list)) ``` - 使用内置函数set(), 将其转换为集合数据结构. 集合,其实可以理解为只有键的字典: ```python item = {"name": "lowman", "age": 27} data = set(item) print(data) ``` 2.取出该字典所有的值:? - value_list = my_dict.values() 返回的是列表 ```python my_dict = dict(name="lowman", age=45, money=998, hourse=None) value_list = my_dict.values()? print(list(value_list)) ```
注意:在python2环境中这两个方法返回的是列表,但是在python3环境下返回的却是迭代器,如果希望通过下标直接取到需要的元素,可以通过list()方法将其先转化为列表,再进行取值.
3.取出字典某个键的值: - value = my_dict["key"] 这样取值的话如果没有这个键就会抛出异常 4.安全地取出字典某个键的值get(): - value = my_dict.get("key") 这样取值的话如果没有这个键就返回None - value = my_dict.get("key", 默认值)也可以自定义一个默认值进行返回
5.遍历字典: - 遍历字典的键 ```python for item in my_dict: ? ? print(item) ? #取出的是字典的键 for key in my_dict.keys(): ? ? ? ?print(key) ``` - 遍历字典的值 ```python for value in my_dict.values(): ? ? ? ?print(value) ``` - 使用字典对象的items() ```python for item in my_dict.items(): print(item) ?#返回值为可遍历的“键-值对”元组列表 for key, value in my_dict.items(): print(key,value) ?#直接获取到每个键和值 ``` 6.删除一个字典的键值对: ```python my_dict = {"name":"lowman", "age":12} del my_dict["name"] ?#这样就把整个键值对给删除掉了 ``` 参考链接:[](https://www.cnblogs.com/lowmanisbusy/p/9142199.html)
|