我有这个清单:
list1 = [['a', 'b', 'c', 'd']]
我发现转换为一个列表的方式:
list1 = [['a', 'b', 'c', 'd']]
result = []
for i in range(len(list1)):
for j in range(len(list1[i])):
result.append(list1[i][j])
print result
结果是:
['a', 'b', 'c', 'd']
还有其他办法吗?
答案 0 :(得分:3)
如果你只有一个项目,显然list1[0]
会起作用。
否则在一般情况下存在类似的问题,例如Making a flat list out of list of lists in Python
这包括几个包括
sum(list1, [])
答案 1 :(得分:2)
只需将列表编入0
:
result = list1[0]
演示:
>>> list1 = [['a', 'b', 'c', 'd']]
>>> result = list1[0]
>>> result
['a', 'b', 'c', 'd']
>>>
对于多个子列表,您可以使用itertools.chain.from_iterable
:
>>> from itertools import chain
>>> list1 = [['a', 'b', 'c', 'd'], ['w', 'x', 'y', 'z']]
>>> list(chain.from_iterable(list1))
['a', 'b', 'c', 'd', 'w', 'x', 'y', 'z']
>>>
答案 2 :(得分:1)
如果您有多个列表,可以直接将列表连接在一起:
list1 = [['a', 'b', 'c', 'd'], ['e', 'f', 'g', 'h']]
result = []
for sublist in list1:
result += sublist
print result
如果它只是一个嵌套列表,iCodez的答案会更快。
答案 3 :(得分:1)
您可以这样做或使用列表理解。两者都做同样的事情,但这更像是python的风格,看起来更漂亮(适用于列表列表),它也被称为展平列表:
result = [item for sublist in l for item in sublist]
这将转为
[[1,2],[3,4]]
到
[1,2,3,4]
和
[[1,2,3,4]]
到
[1,2,3,4]