繁体   English   中英

在Python中创建不带变量“ x in”(例如,范围)的生成器表达式或列表推导

[英]Creating a generator expression or list comprehension without variable “x in” (e.g. for range) in Python

在Python中,有没有办法在没有“ x in”变量的情况下编写此列表推导(因为它完全未使用)? 同样适用于生成器表达式。 我怀疑这种情况经常发生,但是我偶然发现了几次,并很想知道。

这是一个例子:

week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]

(也许,还有一种更优雅的方法来构建它吗?)

我不这么认为,并且x没有伤害。 看到以这种方式未使用值时,常见的事情是使用下划线作为自由变量,例如:

[week_array[:] for _ in range(4)]

但这仅是约定,以表示free变量未使用。

否。两个构造都必须具有迭代器,即使其值未使用也是如此。

week_array = ['']*7
four_weeks = map(list, [week_array]*4)

这与其他答案类似,因为我使用map,但是我所做的使用的是您使用的相同功能。

four_weeks = map(lambda i: week_array[:], range(4))

同样,与使用_相比,例如,它的主要优点是它可以被使用( _被gettext经常使用),并且将其值更改为迭代器中的最后一项。 请参阅以下示例:

[x for x in range(4)]
assert x == 3, 'x should be equal to 3'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM