一、用列表生成字典
1.1 列表的元素为一对数据:
strlist = ['a,b','c,d']
dict(map(lambda x:x.split(','),strlist)) #{'a': 'b', 'c': 'd'}
1.2. 用索引:
strlist = ['a', 'b']
dict(zip(range(len(strlist)),strlist)) #{0: 'a', 1: 'b'}
dict(zip(strlist,range(len(strlist)))) #{'a': 0, 'b': 1}
1.3. 嵌套列表:
strlist= [['k1','v1'],['k2','v2']]
dict(strlist) #{'k2': 'v2', 'k1': 'v1'}
1.4. 两个列表:
strlist1=['a', 'b']
strlist2=['k1','k2']
dict(zip(strlist2,strlist1)) #{'k2': 'b', 'k1': 'a'}
1.5.生成式
intlist = [1,2,3]
{i:i**2 for i in intlist} #{1: 1, 2: 4, 3: 9}
二、python中两个字典合并
dict1 = { "name":"owen", "age": 18 }
dict2 = { "birthday": "1999-11-22", "height": 180 }
合并两个字典得到:
{ "name":"owen", "age": 18, "birthday": "1999-11-22", "height": 180 }
方法一
dictMerged1 = dict( dict1.items() + dict2.items() )
方法二
dictMerged2 = dict( dict1, **dict2 )
方法二等同于:
dictMerged2 = dict1.copy()
dictMerged2.update( dict2 )
或者:
dictMerged2 = dict( dict1 )
dictMerged2.update( dict2 )
方法 2 比方法 1 速度快很多, 可以用 IPython 测试效率。
三、扭转字典的key和value值
reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])
参考链接:
[1] https://blog.csdn.net/weixin_30332241/article/details/99668419
[2] Python 中两个字典(dict)合并 2017.11