如何将嵌套列表作为 Python 中的输入

新手上路,请多包涵

我必须按照以下格式从用户那里获取输入,并从中制作一个嵌套列表。第一行是行数。

 3
Sourav Das 24 M
Titan Das 23 M
Gagan Das 22 F

嵌套列表应该是这样的:

 parentlist = [
['Sourav', 'Das', '24', 'M']
['Titan', 'Das', '23', 'M']
['Gagan', 'Das', '22', 'M']
]

我写了以下代码:

 k = int(raw_input())
parentlist = [[]]
for i in range(0, k):
    str1 = raw_input()
    parentlist[i] = str1.split()

但是它在进入第二行后给出了一些索引超出范围的异常(如下所示)。它给出此异常的代码有什么问题?

 3
Sourav Das 24 M
Titan Das 23 M
Traceback (most recent call last):
  File "nested.py", line 5, in <module>
    parentlist[i] = str1.split()
IndexError: list assignment index out of range

(我是 Python 的新手。所以如果您在我的代码中发现任何其他错误,也请指出。)

原文由 titan7585 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 915
2 个回答

当您阅读第二行时,您尝试将拆分后的行存储到 parentlist[1] 中。但是您的父列表只有一个元素(parentlist[0])。

解决方案是附加列表。

 k = int(raw_input())
parentlist = []
for i in range(0, k):
    str1 = raw_input()
    parentlist.append(str1.split())

原文由 Jakube 发布,翻译遵循 CC BY-SA 4.0 许可协议

在 Python 3 中:

 l= [[input(), float(input())] for _ in range(int(input()))]
print l

输入:

 5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39

输出:

 [[Harry,37.21],[Berry,37.21],[Tina,37.2],[Akriti,41],[Harsh,39]]

原文由 coderaky 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题