在 Python 中,有没有办法在没有“x in”变量的情况下编写这个列表理解(因为它完全未使用)?同样适用于生成器表达式。我怀疑这种情况经常出现,但我偶然发现了几次并且很想知道。
这是一个例子:
week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]
(也许,有没有更优雅的方式来构建它?)
在 Python 中,有没有办法在没有“x in”变量的情况下编写这个列表理解(因为它完全未使用)?同样适用于生成器表达式。我怀疑这种情况经常出现,但我偶然发现了几次并且很想知道。
这是一个例子:
week_array = ['']*7
four_weeks = [week_array[:] for x in range(4)]
(也许,有没有更优雅的方式来构建它?)
我不相信,而且对x
. 以这种方式未使用某个值的常见做法是使用下划线作为自由变量,例如:
[week_array[:] for _ in range(4)]
但这只不过是一种约定,表示自由变量未使用。
不可以。两个构造都必须有一个迭代器,即使它的值未被使用。
week_array = ['']*7
four_weeks = map(list, [week_array]*4)
这与其他答案类似,因为我使用地图,但我所做的使用您正在使用的相同功能。
four_weeks = map(lambda i: week_array[:], range(4))
此外,与使用 example 相比的主要优点_
是它可能已经被使用(_
被 gettext 经常使用)并且它将其值更改为迭代器中的最后一项。看这个例子:
[x for x in range(4)]
assert x == 3, 'x should be equal to 3'