29

重複の可能性:
Python で浅いリストをフラット化する Python
でリストのリストからフラットなリストを作成する Python で
2 つのリストをマージしますか?

素早く簡単な質問:

これをマージするにはどうすればよいですか。

[['a','b','c'],['d','e','f']]

これに:

['a','b','c','d','e','f']
4

6 に答える 6

36

リスト内包表記の使用:

ar = [['a','b','c'],['d','e','f']]
concat_list = [j for i in ar for j in i]
于 2013-01-11T13:09:57.783 に答える
20

リストの連結は+演算子で行うだけです。

それで

total = []
for i in [['a','b','c'],['d','e','f']]:
    total += i

print total
于 2013-01-11T12:58:58.150 に答える
7

これは次のようになります。

a = [['a','b','c'],['d','e','f']]
reduce(lambda x,y:x+y,a)
于 2013-01-11T12:59:32.340 に答える
4

試す:

sum([['a','b','c'], ['d','e','f']], [])

または、より長く、より高速に:

[i for l in [['a', 'b', 'c'], ['d', 'e', 'f']] for i in l]

またはitertools.chain@AshwiniChaudharyが提案したように使用します:

list(itertools.chain(*[['a', 'b', 'c'], ['d', 'e', 'f']]))
于 2013-01-11T13:00:15.683 に答える
1

リスト オブジェクトの「extend」メソッドを試してください。

 >>> res = []
 >>> for list_to_extend in range(0, 10), range(10, 20):
         res.extend(list_to_extend)
 >>> res
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

または短い:

>>> res = []
>>> map(res.extend, ([1, 2, 3], [4, 5, 6]))
>>> res
[1, 2, 3, 4, 5, 6]
于 2013-01-11T13:14:22.133 に答える
0
mergedlist = list_letters[0] + list_letters[1]

これは、静的な長さのリストがあり、常に最初の 2 つをマージしたい場合を想定しています。

>>> list_letters=[['a','b'],['c','d']]
>>> list_letters[0]+list_letters[1]
['a', 'b', 'c', 'd']
于 2013-01-11T13:00:52.733 に答える