有没有更简便的方法生成{'a': 1, 'b': 2, 'c': 3, 'd': 4}这样的字典?

问题遇到的现象和发生背景

我想快速得到一个字典,{'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}这样的字典?

通过 zip()创建字典对象:两个列表 key 和 value,转为这样的字典。key = ['a', 'b', 'c']

value = ['1', '2', '3']
d = dict(zip(key, value))
print(d.items(), d.keys(), d.values())

当然

dict1 = dict(zip("abcd","1234"))
dict1
{'a': '1', 'b': '2', 'c': '3', 'd': '4'}


a = zip('abcd', '1234')     # zip 一一对应,
print(a)  # <zip object at 0x000000000242E448>
dict1 = dict(a)
print(dict1)  # {'a': '1', 'b': '2', 'c': '3', 'd': '4'}
list1 = list(a)
print(list1)  # []

a = zip('abcd', '1234')
list2 = list(a)
print(list2)  # [('a', '1'), ('b', '2'), ('c', '3'), ('d', '4')]
dict2 = dict(a)
print(dict2)  # {}

dict3 = dict(zip('abcd', '1234'))
print(dict3)  # {'a': '1', 'b': '2', 'c': '3', 'd': '4'}

dict4 = dict(zip('abcd', [1, 2, 3, 4]))     # zip 一一对应,
print(dict4)  # {'a': 1, 'b': 2, 'c': 3, 'd': 4}

list1 = list(a)
print(list1) # []
print(list2),可以正常输出列表,
print(list1),怎么输出是一个空列表?

a = zip('abcd', '1234')
这个对象,只能是    一次性  使用的?

{k:i for i , k in enumerate("abcd",1)}