【问题标题】:Most Pythonic way to convert tuple to list, with new elements after each existing one将元组转换为列表的大多数 Pythonic 方式,每个现有元素之后都有新元素
【发布时间】:2020-07-19 03:49:45
【问题描述】:

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

我想从像(a, b, c) 这样的元组转到[a, 1, b, 1, c, 1] 形式的列表。最Pythonic的方法是什么?我尝试了[*(x, 1) for x in list] 之类的方法,然后才意识到您无法在列表理解中解包。最好的方法是什么?我已经搜索了一段时间,找不到任何有用的东西。

【问题讨论】:

标签: python tuples list-comprehension iterable-unpacking


【解决方案1】:

您可以在列表推导中“解包”,但并不完全如此。使用另一个循环。

xs = (a, b, c)
[e for x in xs for e in (x, 1)]

【讨论】:

    【解决方案2】:

    你可以使用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]
    

    但我个人更喜欢glitch's answer中的链式理解解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2020-05-22
      • 1970-01-01
      • 2017-07-18
      • 1970-01-01
      • 2018-07-20
      • 2022-11-01
      相关资源
      最近更新 更多