我想将列表中的集合强制转换为如下列表。
before: [(1, 1, 1), (1, 1, 0), (1, 0, 1)]
after: [[1, 1, 1], [1, 1, 0], [1, 0, 1]]
我需要尽可能简单的代码。
答案 0 :(得分:2)
>>> 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]
答案 1 :(得分:0)
让我们将“ before”定义为一个名为“ array”的变量。然后,在将每个元素转换为列表时,采用“数组”的for循环。
array = [(1,1,1), (1,1,0), (1,0,1)]
casted_array = []
for tuples in array:
casted_array.append(list(tuples))
有一些更简单的方法可以做到这一点,但是很难理解。说明:您将列表[(1,1,1),(1,1,0),(1,0,1)]定义为变量,然后定义一个名为“ casted_array”的“虚拟”变量。然后,您可以循环浏览“数组”变量中的项目,同时将其保存到“元组”迭代变量中。每次迭代循环循环时,集合/元组都会转换为列表,然后添加到“ casted_array”变量中。现在,已强制转换的集合/元组存储在“ casted_array”变量中。