在Python中读取整数

时间:2016-03-07 20:04:11

标签: python-2.7 for-loop input

所以,我的问题很简单。我只是在这里挣扎着语法。我需要读一组整数,3,11,2,4,5,5,6,10,8,-12。我想用这些整数做的就是把它们放在一个列表中,因为我正在阅读它们。 n = n x n数组,其中将显示这些数组。所以如果n = 3,那么我将传递类似这样的东西3 \ n 11 2 4 \ n 4 5 6 \ n 10 8 -12(\ n表示输入文件中的新行)

value = int(raw_input().strip())
ValueError: invalid literal for int() with base 10: '11 2 4'

我从上面的代码中收到此错误:

<http pattern="/login" auto-config="true" disable-url-rewriting="true">
  <intercept-url pattern="/login" access="ROLE_ANONYMOUS"/>
  <access-denied-handler error-page="/index.jsp"/>
</http>

可以在此处找到实际的挑战https://www.hackerrank.com/challenges/diagonal-difference。 我已经用Java和C ++完成了这个,现在只是尝试用Python做,但我很擅长python。如果有人愿意,他们也没有,看到正确的方式阅读整行,说&#34; 11 2 4&#34;,在该行中创建一个新列表,并将其添加到现有列表中。那么我所要做的就是搜索列表的索引[desiredInternalList []]。

2 个答案:

答案 0 :(得分:1)

您可以在空白处拆分字符串并将条目转换为整数。

这给你一个清单:

for a_i in xrange(n):
    a.extend([int(x) for x in raw_input().split()])

这是一个列表清单:

for a_i in xrange(n):
    a.append([int(x) for x in raw_input().split()]):

答案 1 :(得分:0)

您收到此错误是因为您尝试将所有输入都放在一行中。要处理此问题,您可以使用此代码

n = int(raw_input().strip())
a = []
while len(a)< n*n:
  x=raw_input().strip()
  x = map(int,x.split())
  a.extend(x)

print(a)