我想实施以下措施:

print(i) for i in xrange(10)

然而,这在python2和python3中都不起作用。语言的局限性是什么?或者我做错了什么?

最佳答案

Set builder notation(在Python中称为生成器表达式)仅在构建集合时才起作用。您使用的符号是set builder符号(生成器表达式)(类似于x for x in range(10) if ...)。也就是说,你可以使用一个常规for循环

for i in xrange(10):
    print(i)

或设置生成器符号生成空集:
>>> x = [print(i) for i in xrange(10)]
0
1
2
3
4
5
6
7
8
9
>>> x
[None, None, None, None, None, None, None, None, None, None]
>>>

集合具有所有“无”值的原因是,您从未添加到集合,而只打印出内容。

关于python - 为什么在python 2/3的同一行上不能使用for打印?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34536650/

10-15 14:24