首页 > 解决方案 > 如何将列表中的集合转换为python中的列表?

问题描述

我想将列表中的集合投射到下面的列表中。

before: [(1, 1, 1), (1, 1, 0), (1, 0, 1)]
after: [[1, 1, 1], [1, 1, 0], [1, 0, 1]]

我需要尽可能简单的代码。

标签: pythoncasting

解决方案


>>> x = [(1, 1, 1), (1, 1, 0), (1, 0, 1)]
>>> list(map(list, x))
[[1, 1, 1], [1, 1, 0], [1, 0, 1]]

解释

map(list, x)接受一个可迭代对象x并将函数应用于list该可迭代对象的每个元素。这样元组(1, 1, 1)就变成了列表[1, 1, 1](1, 1, 0)变成了[1, 1, 0](1, 0, 1)变成了[1, 0, 1]

然后将这些列表存储在一个map对象中(假设 Python 3.x)。对象是一个map迭代器,可以通过调用list它转换为列表,如上所示。但是,通常您不需要进行这种显式转换,因为迭代器允许您直接遍历元素:

>>> for elem in map(list, x):
...     print(elem)
...
[1, 1, 1]
[1, 1, 0]
[1, 0, 1]

推荐阅读