问题可能令人困惑,所以这里有一个例子:我想从一个元组变成(a, b, c)一个列表[a, 1, b, 1, c, 1]。执行此操作的最 Pythonic 方法是什么?[*(x, 1) for x in list]在意识到您无法在列表理解中解包之前,我尝试了类似的方法。最好的方法是什么?我已经搜索了一段时间,找不到任何有用的东西。
2 回答

收到一只叮咚
TA贡献1821条经验 获得超4个赞
您可以在列表理解中“解包”,但不完全是那样。使用另一个循环。
xs = (a, b, c)
[e for x in xs for e in (x, 1)]

泛舟湖上清波郎朗
TA贡献1818条经验 获得超3个赞
你可以使用itertools.chain.from_iterable
:
>>> from itertools import chain
>>> t = ('a', 'b', 'c')
>>> list(chain.from_iterable((x, 1) for x in t))
['a', 1, 'b', 1, 'c', 1]
但我个人更喜欢故障答案中的链式理解解决方案
添加回答
举报
0/150
提交
取消