在python中同时读取两个列表中的输入
我在解决hackerrank上的一个问题时遇到了读取输入的问题 输入格式为: 第一行:一个数字在python中同时读取两个列表中的输入,python,Python,我在解决hackerrank上的一个问题时遇到了读取输入的问题 输入格式为: 第一行:一个数字n,它告诉我必须阅读的行数 n行:两个空格分隔的值,例如: 15 103 34 我想读取两个列表中以空格分隔的值。 所以列表a应该是[1,10,3],列表b应该是[5,3,4] 这是我的密码: dist = [] ltr = [] n = input() for i in range(n): ltr[i], dist[i] = map(int, raw_input().split(' '))
n
,它告诉我必须阅读的行数
n行:两个空格分隔的值,例如:
15
103
34
我想读取两个列表中以空格分隔的值。
所以列表a应该是[1,10,3],列表b应该是[5,3,4]
这是我的密码:
dist = []
ltr = []
n = input()
for i in range(n):
ltr[i], dist[i] = map(int, raw_input().split(' '))
它给了我以下错误:
ltr[i],dist[i]=map(int,raw_input().split(“”))
索引器:列表
分配索引超出范围
这是Python初学者常见的错误 您正试图将输入值分配给列表
dist
和ltr
中的特定单元格,但由于这些单元格是空列表,因此没有可用的单元格。索引i
超出范围,因为该索引根本没有范围
因此,与其分配到列表中,不如附加到列表中,比如
dist = []
ltr = []
n = input()
for i in range(n):
a, b = map(int, raw_input().split(' '))
ltr.append(a)
dist.append(b)
注意,我还通过插入空格改进了代码的格式。在学习之初遵循好的风格对你有好处,这样你以后就没有那么多需要克服的问题了。这可能在某种程度上对你有所帮助;这里有一个更简单的方法来解决这个问题,正如你所知道的“简单比复杂好”: 输出:
[1, 10, 3]
[5, 3, 4]
我想如果你把这些线放在它们所在的环中,会更清楚belong@Lethr当前位置我试图保持我的答案简洁明了,但我明白你的意思。我已相应地编辑了我的答案。谢谢你的建议。很好的解释,Rory。。非常感谢。请注意,您不应该在Python 2中使用
input
,因为它不安全,允许用户在您的机器上执行任意代码。如果需要整数,请使用int
函数转换raw\u input
返回的字符串,例如:n=int(raw\u input())
。在Python3中,raw_input
已重命名为input
,Python2的input
函数已不存在。非常感谢您的建议。谢谢你让我知道这个事实。
[1, 10, 3]
[5, 3, 4]