0

我从这样的列表开始

lists = [['test', '1', '-1', '0', '-1'],['test2', '0', '1', '0', '-1']

我想要结束的是{'test': [1, -1, 0, -1], 'test2': [0, 1, 0, -1]}

所以基本上,我需要从列表中创建一个字典。字典的值需要是整数而不是字符串。

这是我的非工作代码:

endResult = dict()
for x in lists:
    for y in x:
        endResult.update({x[0]:int(y)})
4

3 回答 3

1
endResult = {}
for x in lists:
    endResult[x[0]] = [int(y) for y in x[1:]]

例子:

>>> lists = [['test', '1', '-1', '0', '-1'],['test2', '0', '1', '0', '-1']]
>>> endResult = {}
>>> for x in lists:
...     endResult[x[0]] = [int(y) for y in x[1:]]
...
>>> endResult
{'test2': [0, 1, 0, -1], 'test': [1, -1, 0, -1]}
于 2013-07-11T05:15:22.307 回答
1

您可以使用dict理解

>>> lists = [['test', '1', '-1', '0', '-1'],['test2', '0', '1', '0', '-1']]
>>>
>>> endResult = { li[0]: map(int, li[1:]) for li in lists }
>>> endResult
{'test': [1, -1, 0, -1], 'test2': [0, 1, 0, -1]}
于 2013-07-11T05:18:45.087 回答
0

这应该只是工作:

endResult = dict()
for x in lists:
    testname, testresults = x[0], x[1:]
    endResult[testname] = [int(r) for r in testresults]

如果出现以下情况会发生什么:

  • 2个测试名称相同?
  • 测试结果有超过4个元素?
于 2013-07-11T05:19:29.260 回答