tln*_*agy 1 python dictionary dictionary-comprehension
出于好奇,有可能将以下逻辑写成一个不错的词典理解吗?
a = "a c\nb c\nn q\n".split('\n')[:-1]
output = {}
for line in a:
tmp = line.split(' ')
output[tmp[0]] = tmp[1]
Run Code Online (Sandbox Code Playgroud)
我写了以下内容,但没有临时任务,我必须拆分两次,这是不幸的:
{line.split(' ')[0]:line.split(' ')[1] for line in a}
Run Code Online (Sandbox Code Playgroud)
有可能更优雅吗?
在这种情况下,我认为dict 构造函数更好一些,因为它将采用可迭代的2个序列:
dict(line.split() for line in a)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> a
['a c', 'b c', 'n q']
>>> dict(line.split() for line in a)
{'a': 'c', 'b': 'c', 'n': 'q'}
Run Code Online (Sandbox Code Playgroud)
小智 5
使用嵌套列表理解:
{p[0]:p[1] for p in [l.split(" ") for l in a]}
Run Code Online (Sandbox Code Playgroud)
输出:
{'a': 'c', 'b': 'c', 'n': 'q'}
Run Code Online (Sandbox Code Playgroud)