我必须从用户那里获取以下格式的输入,并从中创建一个嵌套列表。第一行是行数。
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新手。如果你在我的代码中发现了错误,也要指出其他错误。)
您的
parentlist
是一个包含一个元素的列表。在for
循环的第二次迭代中,尝试访问parentlist
的第二个元素,这将导致索引器错误。Python中的列表与JavaScript或PHP中的数组不同。实际上,您要做的是创建一个空列表,然后将str1.split()的结果附加到该列表中。
阅读第二行时,尝试将分割的行存储到parentlist[1]中。但是您的parentlist只有一个元素(paraentlist[0])。
解决方案是追加列表。
您应该简单地使用
list comprehension
,因为代码会越来越短、越来越快。相关问题 更多 >
编程相关推荐