1

たとえば、次のようにします。

nodes = [[1, 2],[3, 4]] 
thelist = [[5, 6], [7, 8]]

リストが次のようになるようにコーディングするにはどうすればよいですか。

[[1, 2],[3, 4],[5, 6],[7, 8]]

私はそれを行う方法を知っていますが、エレガントな python の方法が必要です。

私の試み:

for node in nodes:
    thelist.insert(0, node)

それを行うには、よりPythonicな方法があるはずです。

編集:順序はどういうわけか重要です(そのため、インデックス0に挿入しようとしています)。

4

3 に答える 3

11

それらを一緒に追加するだけです:

In [11]: nodes + thelist
Out[11]: [[1, 2], [3, 4], [5, 6], [7, 8]]

また、extend (ノードを変更する) を使用することもできます。

In [12]: nodes.extend(thelist)

In [13]: nodes
Out[13]: [[1, 2], [3, 4], [5, 6], [7, 8]]
于 2013-09-06T17:44:58.580 に答える
8

スライスに割り当ててthelist[:0]、最初に要素を挿入できます。

nodes = [[1, 2],[3, 4]]
thelist = [[5, 6], [7, 8]]
thelist[:0] = nodes
# thelist is now [[1, 2], [3, 4], [5, 6], [7, 8]]

リストを操作する多くの便利な方法については、Python チュートリアルを参照してください。

于 2013-09-06T17:46:24.610 に答える
5

あるいは、何らかの順序が重要な場合、またはアイテムを一度に 1 つずつ取得する機能のみが重要な場合は、次を使用できますheapq.merge

import heapq

nodes = [[1, 2],[3, 4]]
thelist = [[5, 6], [7, 8]] 
res = list(heapq.merge(nodes, thelist))
# [[1, 2], [3, 4], [5, 6], [7, 8]]

nodes = [[1, 2], [5,6]]
thelist = [[3, 4], [7, 8]]    
res = list(heapq.merge(nodes, thelist))
# [[1, 2], [3, 4], [5, 6], [7, 8]]

または、次を使用します。

for heapq.merge(nodes, thelist):

順序は とは異なる可能性があることに注意してくださいitertools.chain

于 2013-09-06T17:49:18.880 に答える