2017-04-03 201 views
0

问题:我需要将一个整数数组作为输入。提取每个整数并将其存储在单独的数组中。在一行中避免空格的数组输入输入

我的代码至今

x = [] 
    y = [] 
    x = list(map(int,input())) 
    for i in range (len(x)): 
     y[i] = x[i] 

我也尝试了替换功能,但我无法从一个单一的数字整数标识2或3位整数。实际上,它将100作为1,0,0存储在[0],a [1]和[2]中,但我需要100作为[0]中的单个数字。 我需要一个清楚的概念来说明这是如何工作的!有人可以帮我吗?

+0

您希望输入的格式是什么? –

+0

'x = list(map(int,input()))'应该没问题。其余的不清楚。 –

+0

@DanielRoseman输入的格式应该是:1 2 3 4 10 11 –

回答

0

由于整数将被空格分隔,所以应该使用.split(' ')

x = list(map(int, input().split(' '))) 

其余的代码似乎毫无意义;这一行就足够了。

0

你可以做这样的事情上python3:

x = list(map(int, input().split())) 
y = list(x) # will create list y similar to x 
print(y) 

对于python2,您可以使用raw_input要做到这一点,是这样的:

x = list(map(int, str(raw_input()).split())) 
y = list(x) # will create list y similar to x 
print(y) 

对于输入100 200,其结果将是:

[100, 200] 
+0

'y = x'不会创建类似于'x'的列表;它为'x'创建一个别名。如果你想创建一个新列表,使用'x [:]' – zondo

+0

这是正确的。参考将被创建。将编辑。 –

0

功能.split()接收一个字符串并返回它的单词列表。您可以指定单词的分隔符并使用.split(' '),以便Python知道您输入的数字是由空格分隔的。

例如:

x = list(map(int, input().split(' '))) 
print(x) 

如果您运行此命令,输入线:

10 8 5 

你会得到的结果:

[10, 8, 5] 

另外,如果你想数字的总和,就像你说的那样,使用函数sum(),它将列表的所有元素相加。这是您需要的程序:

x = sum(list(map(int, input().split(' ')))) 
+0

.split不需要参数;默认情况下它会分割空白。 sum()不需要它的参数就是一个列表。地图对象正常工作。 – zondo