問題可能令人困惑,所以這里有一個例子:我想從一個元組變成(a, b, c)一個列表[a, 1, b, 1, c, 1]。執行此操作的最 Pythonic 方法是什么?[*(x, 1) for x in list]在意識到您無法在列表理解中解包之前,我嘗試了類似的方法。最好的方法是什么?我已經搜索了一段時間,找不到任何有用的東西。
2 回答

收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
您可以在列表理解中“解包”,但不完全是那樣。使用另一個循環。
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
提交
取消