2013-01-03 14 views
14

私は書きたいと思っているプログラムの「メイン」リストの一種である単一のリストに追加したいリストをたくさん持っています。 10のようなコードではなく、1行のコードでこれを行う方法はありますか?複数のリストを一度に追加できますか? (Python)

x = [1, 2, 3] 
y = [4, 5, 6] 
z = [7, 8, 9] 

そしてxにy、zは追加したい:私は考え...私はこれらのリストを持っていたものならば私の質問、のより良い絵のために

を持っていないので、私は初心者です。代わりに:

x.append(y) 
x.append(z) 

コードの1行でこれを行う方法はありますか?私はすでに試しました:

x.append(y, z) 

そしてそれはうまくいきません。

+2

本当に '.append'や' .extend'が必要ですか?違いを理解していますか? –

+0

どのような出力を期待していますか? – Volatility

+0

いいえ、私は見たことがありません前に、何をしますか? –

答えて

26
x.extend(y+z) 

あなたは

または

x += y+z 

あるいは

x = x+y+z 
+3

最後のものは微妙に異なります。新しいリストを作成し、それを 'x'に代入します。代わりに' x'を変更します。 –

+0

私は試してみました。助けてくれてありがとう。 –

+0

拡張メソッドは私のためにNoneを返し続けます。 – zakdances

14

が私のコメントを拡張したい何をすべき

In [1]: x = [1, 2, 3] 
In [2]: y = [4, 5, 6] 
In [3]: z = [7, 8, 9] 
In [4]: from itertools import chain 
In [5]: print list(chain(x,y,z)) 
[1, 2, 3, 4, 5, 6, 7, 8, 9] 
+0

itertoolsオプションのシンプルな形式は便利です: 'itertools.chain([1、2、3]、[4,5,6]、[7,8 、9]) '=' [1,2,3,4,5,6,7,8,9] ' – NuclearPeon

0

上記回答に相当するが、言及する価値があるのに十分に異なる:上記式中

my_map = { 
    'foo': ['a', 1, 2], 
    'bar': ['b', '2', 'c'], 
    'baz': ['d', 'e', 'f'], 
} 
list(itertools.chain(*my_map.values())) 
['d', 'e', 'f', 'a', 1, 2, 'b', '2', 'c'] 

、*は鎖に引数として結果をgrokingために重要であり、これは、前鎖(X、Yと同一でありますz)。また、結果がハッシュ順であることに注意してください。

3

あなたは開始値(空のリスト)とのsum機能を使用することができますが示されている:あなたがリストの任意の数を追加したい場合は

a = sum([x, y, z], []) 

、これは特に適しています。

関連する問題