将元组转换为列表的大多数 Pythonic 方式,在每个现有元素之后添加新元素

问题可能令人困惑,所以这里有一个例子:

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


慕虎7371278
浏览 106回答 2
2回答

收到一只叮咚

您可以在列表理解中“解包”,但不完全是那样。使用另一个循环。xs = (a, b, c)[e for x in xs for e in (x, 1)]

泛舟湖上清波郎朗

你可以使用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]但我个人更喜欢故障答案中的链式理解解决方案
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python