Python 使用split()操作和列表理解创建字典

Python 使用split()操作和列表理解创建字典,python,split,list-comprehension,Python,Split,List Comprehension,我想使用“列表理解”创建“字典”: a_list = ['1, Lastoŭski', '2, Kupala', '3, Kolas'] 到目前为止,我尝试的是: d = {key: value for (key, value) in s.split(',') for s in a} >>> NameError: name 's' is not defined 但这是完全错误的。你能帮我吗 不需要词典理解。您正在使事情变得比需要的更复杂;) 如果您需要列表理解,那么这就

我想使用“列表理解”创建“字典”:

a_list = ['1, Lastoŭski', '2, Kupala', '3, Kolas'] 
到目前为止,我尝试的是:

d = {key: value for (key, value) in s.split(',') for s in a}

>>> NameError: name 's' is not defined

但这是完全错误的。你能帮我吗

不需要词典理解。您正在使事情变得比需要的更复杂;)

如果您需要列表理解,那么这就足够了:

d = dict((key, value) for key, value in [i.split(', ') for i in a_list])

您很接近,但缺少括号

正如@Delgan所指出的,可以通过

d1 = dict(keyval.split(", ") for keyval in a_list)
没有内部嵌套:)

并非真正正确的旧方法:

d = [a.split(',') for a in a_list]
d1 = {key: val for key,val in d}

试试这个:

 d = dict(map(str, x.split(',')) for x in a_list)

这会有帮助。

谢谢,但我正在学习
功能性的
Python的机会
,并希望通过
理解
来实现这一点。实际上,您正在使它变得更加复杂。^^
d=dict(keyval.split(“,”)表示“U”列表中的keyval)
工作正常。@RudziankoŭEdited@Delgan嘿,每天学点新东西:)。我仍然不明白为什么我的答案被否决了——它仍然是正确的的确,它是正确的,但它不是正确的方法。所以OP会学到一些不准确的东西。
dict(s.split(',')表示a_列表中的s)
无法理解否决票。。如果是向下投票,请发表评论。解决问题不需要嵌套列表/听写理解。@Delgan明白了。感谢您无需致电
map
:)为什么要投否决票?如果你投反对票,请指出原因?如果它从列表中生成词典,为什么不呢?
str.split()
的结果已经是字符串的“列表”,因此再次将其强制转换为
str
没有意义。
d1 = {key: val for key,val in (a.split(',') for a in a_list)}
 d = dict(map(str, x.split(',')) for x in a_list)