gpt4 book ai didi

Python - 字典理解中的元组解包

转载 作者:太空狗 更新时间:2023-10-29 17:37:05 25 4
gpt4 key购买 nike

我正在尝试编写一个函数,将 'A=5, b=7' 形式的字符串转换为字典 {'A': 5, 'b': 7}。以下代码片段是在主 for 循环中发生的事情 - 它们将字符串的单个部分转换为单个 dict 元素。

这很好:

s = 'A=5'
name, value = s.split('=')
d = {name: int(value)}

这不是:

s = 'A=5'
d = {name: int(value) for name, value in s.split('=')}
ValueError: need more than 1 value to unpack

为什么我不能在字典理解中解压元组?如果我能正常工作,那么我可以轻松地将整个函数变成一个紧凑的字典理解。

最佳答案

在您的代码中,s.split('=') 将返回列表:['A', '5']。遍历该列表时,每次都会返回一个字符串(第一次是 'A',第二次是 '5')所以你可以' t 将该单个字符串解压缩为 2 个变量。

你可以试试:for name,value in [s.split('=')]

更有可能的是,您有一个要拆分的可迭代字符串——然后您的字典理解变得简单(2 行):

 splitstrs = (s.split('=') for s in list_of_strings) 
d = {name: int(value) for name,value in splitstrs }

当然,如果你对 1-liner 很着迷,你可以将它结合起来,但我不会。

关于Python - 字典理解中的元组解包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12094764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com