比如有两个列表,要把们俩对应的索引,组成键值对字典
keys = [‘a’, ‘e’, ‘i’, ‘o’, ‘u’ ]
values = [1, 2, 3, 4, 5]
一、使用zip()方法
利用 zip() 函数可以对具有相同数量的元素的序列进行配对,返回的值不是元组,也不是列表,而是一个整合在一起的可迭代变量
1、当索引一一对应的时候
dic1 = {}
keys = ['a', 'e', 'i', 'o', 'u' ]
values = [1, 2, 3, 4, 5]
dict1 = dict(zip(keys, values))
print(dict1)
2、当key有缺失的时候
dic1 = {}
keys = ['a', 'e', 'i', 'o', 'u' ]
values = [1, 2]
dict1 = dict(zip(keys, values))
print(dict1)
这里会舍弃掉不匹配的索引
如果真的遇到两个列表不等长这种情况,就没办法了,只能判断以下列表的长度了,在进行相应的操作。
这是我自己写的一种方法
keys = ['a', 'e', 'i', 'o', 'p']
values = [1, 2, 3]
dict1 = dict(zip(keys, values))
if len(keys) != len(values): #判断长度
key_out = keys[len(values):]
for key in key_out:
dict1[key] = None
print(dict1)
二、fromekeys()方法
1、当keys为空时,创建字典
dic1 = {}
keys = ['a', 'e', 'i', 'o']
values = []
d = dict.fromkeys(keys,values)
print(d)
2、当kyes有值时,这时并不是我们想要的那样!
dic1 = {}
keys = ['a', 'e', 'i', 'o']
values = [1, 2, 3]
d = dict.fromkeys(keys,values)
print(d)