Python 如何使用列表理解在一行中打印列表中的一系列整数?

Python 如何使用列表理解在一行中打印列表中的一系列整数?,python,python-3.x,list,Python,Python 3.x,List,我必须在一行中打印列表中的整数, 我只需要使用一行代码,使用列表理解(假设列表已经提供给我们) 我试过这个: 但在本例中,输出是一个列表,但我需要它只是数字 我也试过: 但它也会打印一个末尾带有“None”值的列表,如: 4 10 22 34 [None, None, None, None] ----------- 我想要打印的列表是: [4,10,22,34] 输出必须准确: 4 10 22 34 我得到了其他用户所说的,但不是在列表理解中打印,你可能想考虑先格式化输出。 print('

我必须在一行中打印列表中的整数, 我只需要使用一行代码,使用列表理解(假设列表已经提供给我们)

我试过这个: 但在本例中,输出是一个列表,但我需要它只是数字

我也试过: 但它也会打印一个末尾带有“None”值的列表,如:

4 10 22 34 [None, None, None, None]
----------- 我想要打印的列表是:

[4,10,22,34]
输出必须准确:

4 10 22 34

我得到了其他用户所说的,但不是在列表理解中打印,你可能想考虑先格式化输出。

print(' '.join([str(i) for i in int_list]))

在某种程度上,这也满足了您的要求。

如果您只想将列表打印为一行:

print(*(i for i in [4,10,22,34]))

虽然上面的答案更快,更直观,应该是首选,但我想补充一些不同的东西,因为为什么不呢

print(str([4, 10, 22, 34]).strip('[]').replace(',',''))

使用
*
打印
获得结果:-

print(*[4,10,22,34])
输出

4 10 22 34

这里的要点是不要使用列表理解。单行代码总是不方便使用。不鼓励对“副作用”使用列表理解,在这种情况下,显示值会产生副作用
print
(在Py3中)是一个返回
None
的函数。你有正确的印刷品;只需在常规for循环中使用它。这里没有很好的理由使用列表理解。你可能误解了你的作业是如何涉及列表理解的,和/或你的作业很糟糕。如果没有更多的上下文,我们就说不出来。这个[print(j,end='')对于[4,10,22,34]中的j,在Python3.6中应该是正确的。您使用的是哪种python版本?@CaoMinhVu,它在末尾打印
None
s。我建议使用这种方法-如果到目前为止的说明中包含此字符串
join
方法。如果这是一个作业,它应该有一个目的,整合他们刚刚学到的一些东西。当你们实际上正在创建一个新的字符串列表时,一个很好的替代方法可能是:
print('''.join(map(str,int_list))
@Tomerikoo在记住列表理解是一项要求之前,我考虑过它,否则我们可以只做
print(*int_列表)
。使用生成器表达式或迭代器(如
map
作为
str.join
的参数)不会在列表理解过程中保存任何内容,因为
str.join
实现的第一步是,如果该参数还不是列表或元组,则将其转换为列表。这是因为代码需要在t上进行迭代他的值不止一次,因此一次使用迭代器是没有用的。生成器表达式在那里完全没有必要。只需执行
print(*[4,10,22,34])
相反。@Blckknght我认为这是必须使用列表理解的奇怪要求的原因。@Blckknght你是对的,但我想说明print语句可以用于打印生成器。
print(*[4,10,22,34])
4 10 22 34