我想使用`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
但这是完全错误的。你可以帮帮我吗?
答案 0 :(得分:1)
不需要词典理解。你正在制造比它需要的更复杂的东西;)。
a_list = ['1, Lastoŭski', '2, Kupala', '3, Kolas']
d = {}
for i in a_list:
temp = i.split(', ')
d[temp[0]] = temp[1]
print d
# returns: {'3': 'Kolas', '2': 'Kupala', '1': 'Lastoŭski'}
如果您需要列表理解,那么这就足够了:
d = dict((key, value) for key, value in [i.split(', ') for i in a_list])
你很亲密,但你缺少括号
答案 1 :(得分:1)
正如@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}
或
d1 = {key: val for key,val in (a.split(',') for a in a_list)}
答案 2 :(得分:0)
试试这个:
d = dict(map(str, x.split(',')) for x in a_list)
这会有所帮助。