我是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:列表索引超出范围
如何在一行中打印整数列表(假设我的前两行代码是正确的),并且没有括号和逗号?
答案 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)