我试图通过字典理解来获取字符串列表并从这些元素创建字典。下面的代码包含预期和实际输出以及我正在使用的理解。任何帮助将不胜感激。
s = ['Kennedy D MA -1 -1 1 1', 'Snowe R ME 1 1 1 1']
strlist = list(x.split() for x in s)
print({ strlist[x][0]:[int(strlist[x][y])] for x in range(len(strlist)) for y in range(3, len(strlist[0])) })
'''
EXPECTED: {'Snowe': [1, 1, 1, 1], 'Kennedy': [-1, -1, 1, 1]}
ACTUAL: {'Snowe':[1] , 'Kennedy':[1]}
'''
答案 0 :(得分:3)
最简单的:
{s[0]:s[3:] for s in strlist}
没有搞乱指数......! - )
答案 1 :(得分:1)
试过这个
dict((x.split()[0],x.split()[3:]) for x in s)
您可以进一步修改为:
{x[0]:x[3:] for x in [y.split() for y in s]}
如果您不介意有可读性问题,可以
{x[0]:[int(i) for i in x[3:]] for x in [y.split() for y in s]}
将数字转换为int
s
答案 2 :(得分:0)
在这种情况下,我不会使用字典理解,您需要创建一个元素[int(strlist[x][y])]
的列表。在python3中:
strings = ['Kennedy D MA -1 -1 1 1', 'Snowe R ME 1 1 1 1']
result = {}
for line in strings:
name, __, __, *rest = line.split()
result[name] = list(rest)