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

新手上路,请多包涵

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

 #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”并执行 print(array) 输出是:

[1, 2, 3]

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

1 2 3

我试过这样做:

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

但我得到一个错误:

2 3 回溯(最后一次调用):

打印(数组[i],结束=“”)

IndexError:列表索引超出范围

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

原文由 KimioN42 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 391
2 个回答

你想说

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

语法 i in array 遍历列表的每个成员。 So, array[i] was trying to access array[1] , array[2] , and array[3] , but the last of these is out of bounds ( array 有索引 0、1 和 2)。

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

原文由 Nick Matteo 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 print(*list)

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

(其中 * 是将列表转换为位置参数的 解包 运算符, print(*[1,2,3]) 与 —647da50051875663160dc2d961509 相同,请参阅 starcc6 print(1,2,3) 函数调用?

原文由 Nikhil Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题