Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字典理解困难_Python - Fatal编程技术网

Python 字典理解困难

Python 字典理解困难,python,Python,我正在尝试一个字典理解,它获取一个字符串列表,并从这些元素创建一个字典。下面的代码包含预期的和实际的输出以及我正在使用的理解。任何帮助都将不胜感激 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 ra

我正在尝试一个字典理解,它获取一个字符串列表,并从这些元素创建一个字典。下面的代码包含预期的和实际的输出以及我正在使用的理解。任何帮助都将不胜感激

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]}
'''

在本例中,我不会使用dict理解,您正在创建一个元素列表
[int(strlist[x][y])]
。在python3中:

strings=['Kennedy D MA-1-11','Snowe R ME 1']
结果={}
对于字符串中的行:
名称,_uuuu,_uuuu,*rest=line.split()
结果[名称]=列表(剩余)

在本例中,我不会使用dict理解,您正在创建一个元素列表
[int(strlist[x][y])]
。在python3中:

strings=['Kennedy D MA-1-11','Snowe R ME 1']
结果={}
对于字符串中的行:
名称,_uuuu,_uuuu,*rest=line.split()
结果[名称]=列表(剩余)
最简单的:

{s[0]:s[3:] for s in strlist}
不要弄乱索引…!-)

最简单的:

{s[0]:s[3:] for s in strlist}
不要弄乱索引…!-)

试过这个

dict((x.split()[0],x.split()[3:])表示s中的x)

您可以对其进行进一步修改,以:

{x[0]:x[3:]代表x in[y.split()代表y in s]}

如果你不介意可读性问题,你可以

{x[0]:[int(i)for i in x[3:]for x in[y.split()for y in s]}

要将数字转换为
int
s

请尝试以下操作

dict((x.split()[0],x.split()[3:])表示s中的x)

您可以对其进行进一步修改,以:

{x[0]:x[3:]代表x in[y.split()代表y in s]}

如果你不介意可读性问题,你可以

{x[0]:[int(i)for i in x[3:]for x in[y.split()for y in s]}


将数字转换为
int
s

Wow!它能起作用,但我不太清楚如何起作用。你能解释一下s[3:]的语法吗?这是否只是从3迭代到结束?我还需要1和-1作为整数值int(s[3:])不起作用。当我把这些值添加到列表中时,有没有办法说把它们转换成整数?@Duckenmonkey44当然,用s[3://code>中的x的
[int(x)来代替
s[3://code>!非常感谢Alex!+3到目前为止哈哈!这是有效的,但我不太确定如何。你能解释s[3:]语法?这只是从3迭代到结束吗?我还需要1和-1作为整数值int(s[3:])不起作用。有没有办法说在我将它们添加到列表时将这些值转换为整数?@Duckenmonkey44当然,使用
[int(x)for x in s[3:][/code>代替
s[3:][/code>!非常感谢Alex!+3到目前为止哈哈