在单行python3中打印一个int列表

时间:2016-06-04 00:30:49

标签: python python-3.x

我是python的新手,我试图扫描多个以空格分隔的数字(让我们假设' 1 2 3'作为一个例子)在一行中并将其添加到int列表中。我是通过使用:

来做到的
arr.filter

显然它有效,因为当我输入' 1 2 3'并输出#gets the string string = input('Input numbers: ') #converts the string into an array of int, excluding the whitespaces array = [int(s) for s in string.split()] 输出:

  

[1,2,3]

但我想在没有括号的单行中打印它,并且在数字之间有一个空格,如下所示:

  

1 2 3

我已经尝试过:

print(array)

但是我收到了一个错误:

  

2 3追溯(最近一次呼叫最后一次):

     

print(array [i],end ="")

     

IndexError:列表索引超出范围

如何在一行中打印整数列表(假设我的前两行代码是正确的),并且没有括号和逗号?

11 个答案:

答案 0 :(得分:24)

你想说

for i in array:
    print(i, end=" ")

语法i in array遍历列表的每个成员。因此,array[i]尝试访问array[1]array[2]array[3],但最后一个超出范围(array有索引0,1 ,和2)。

您可以使用print(" ".join(map(str,array)))获得相同的效果。

答案 1 :(得分:12)

这些都适用于Python 2.7和Python 3.x:

>>> l = [1, 2, 3]
>>> print(' '.join(str(x) for x in l))
1 2 3
>>> print(' '.join(map(str, l)))
1 2 3

btw,array是Python中的保留字。

答案 2 :(得分:8)

是的,在 Python 3 中是可能的,只需在变量前使用*,例如:

print(*list)

这将打印用空格分隔的列表。

答案 3 :(得分:6)

尝试在你的整数的str转换中使用join:

print ' '.join(str(x) for x in array)

答案 4 :(得分:6)

您有多个选项,每个选项都有不同的一般用例。

第一个是使用for循环,正如您所描述的那样,但是按照以下方式。

for value in array:
    print(value, end=' ')

您还可以使用str.join使用理解来获得简单易读的单行内容。此方法适用于将此值存储到变量中。

print(' '.join(str(value) for value in array))

我最喜欢的方法是将array作为*args传递给sep ' '。但请注意,此方法仅生成print ed输出,而不是可以存储到变量的值。

print(*array, sep=' ')

答案 5 :(得分:1)

# Print In One Line Python

print('Enter Value')

n = int(input())

print(*range(1, n+1), sep="")

答案 6 :(得分:1)

就是这样

l = [1, 2, 3] 
 print(*l)

这将给出输出: 1 2 3

答案 7 :(得分:0)

对于python 2.7,另一个技巧是:

arr = [1,2,3]
for num in arr:
  print num,
# will print 1 2 3

答案 8 :(得分:0)

您可以在打印中使用更多“结束”元素:

for iValue in arr:
   print(iValue, end = ", ");

答案 9 :(得分:-2)

如果你写

a = [1, 2, 3, 4, 5]
print(*a, sep = ',')

您将获得以下输出:1,2,3,4,5

答案 10 :(得分:-2)

也许此代码会为您提供帮助。

>>> def sort(lists):
...     lists.sort()
...     return lists
...
>>> datalist = [6,3,4,1,3,2,9]
>>> print(*sort(datalist), end=" ")
1 2 3 3 4 6 9

您可以通过方法append()使用空列表变量来收集用户输入。 如果要在一行中打印列表,则可以使用print(*list)