csz9981 2022-02-20 09:38 采纳率: 92.9%
浏览 36
已结题

有没有更简便的方法生成{'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}这样的字典?

  • 写回答

4条回答 默认 最新

  • youcans_ 人工智能领域优质创作者 2022-02-20 10:03
    关注

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

    value = ['1', '2', '3']
    d = dict(zip(key, value))
    print(d.items(), d.keys(), d.values())
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 2月28日
  • 已采纳回答 2月20日
  • 修改了问题 2月20日
  • 创建了问题 2月20日

悬赏问题

  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题
  • ¥15 有没有人能解决下这个问题吗,本人不会编程
  • ¥15 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测