问题遇到的现象和发生背景
我想快速得到一个字典,{'a': 1, 'b': 2, 'c': 3, 'd': 4}
方法1:用字典推导式,没成功,
方法2:用for i in range(4),逐个对应添加k-v对,
有没有更简便的方法生成{'a': 1, 'b': 2, 'c': 3, 'd': 4}这样的字典?
问题相关代码,请勿粘贴截图
dict1 = {a: a ** 2 for a in range(1, 5)}
print(dict1) # {1: 1, 2: 4, 3: 9, 4: 16}
list1 = ['abcd']
print(list1) # ['abcd']
list1 = list('abcd')
print(list1) # ['a', 'b', 'c', 'd']
list2 = [1, 2, 3, 4]
dict2 = {(a for a in list1): (b for b in list2)}
print(dict2)
# {<generator object <genexpr> at 0x00000000020CE748>: <generator object <genexpr> at 0x00000000020CE7C8>}
dict2 = {a: b for a in list1 for b in list2}
print(dict2) # {'a': 4, 'b': 4, 'c': 4, 'd': 4}
dict4 = {}
dict4 = dict.fromkeys(list1, list2)
print(dict4) # {'a': [1, 2, 3, 4], 'b': [1, 2, 3, 4], 'c': [1, 2, 3, 4], 'd': [1, 2, 3, 4]}
# 下面的代码实现了快速生成{'a': 1, 'b': 2, 'c': 3, 'd': 4}字典的功能,
dict3 = {}
for i in range(4):
# print(i)
dict3[list1[i]] = list2[i] # 让列表元素,一一对应,
print(dict3) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
dict5 = {list1[i]: list2[i] for i in range(4)} # 让列表元素,一一对应,
print(dict5) # {'a': 1, 'b': 2, 'c': 3, 'd': 4}
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
有没有更简便的方法生成{'a': 1, 'b': 2, 'c': 3, 'd': 4}这样的字典?