【发布时间】:2017-03-05 15:06:13
【问题描述】:
我正在尝试使用多个生成器表达式来初始化一个列表。以下代码显示了我最终得到的结果,但我不确定这是“正确”的方式。你打算如何使用多个表达式?
z = [ *(x for x in range(4)), *(y for y in range(5))]
注意:在我的真实代码中,表达式比范围更复杂,所以请不要试图对上面的实际值变得聪明。我确实需要多个生成器表达式
【问题讨论】:
-
是什么让您认为这不是正确的方法?是否有您要解决的问题?
-
乔恩说了什么。但是如果你真的不需要这个列表,或者想兼容旧版本的 Python,看看
itertools.chain -
我是 python 新手。仍在寻找 python 做事的方式(我写的太多东西看起来像 C 代码)。目前我不关心旧版本的python。带有 () 的 * 让我觉得我在强迫一些可以做得更干净的事情。
-
如果你想要一个列表,你还不如添加两个列表推导(为了更向后兼容)
-
它的语法是什么?