【问题标题】:How to make each element a list from zip() with list comprehensions?如何使用列表推导使每个元素成为 zip() 中的列表?
【发布时间】:2014-03-31 18:47:56
【问题描述】:
keys = zip([x for x in range(0, 10)], [x for x in range(0, 10)])
print keys

结果(包含元组的列表):

[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]

如何使每个单独的元素成为一个列表,而不是元组?以下示例不起作用:

keys = list(zip([x for x in range(0, 10)], [x for x in range(0, 10)]))

下面的例子也不行:

keys = zip([x for x in range(0, 10)], [x for x in range(0, 10)])
for i in keys:
    i = list(i)
print keys

【问题讨论】:

    标签: python list zip tuples list-comprehension


    【解决方案1】:

    您可以使用此列表推导式将元组zip yield 转换为列表:

    >>>keys = [list(t) for t in zip(range(10), range(10))]
    >>>keys
    [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9]]
    

    顺便说一句[x for x in range(0,10)] 是多余的,简单地做range(10)

    另一种没有列表理解的方法是:map(list, zip(range(10), range(10))),但在 Python 3 中这不会返回一个列表,而是返回一个 map 对象。

    【讨论】:

      猜你喜欢
      • 2021-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-07
      • 2020-09-25
      • 1970-01-01
      • 2017-12-23
      • 1970-01-01
      相关资源
      最近更新 更多