2017-11-15 32 views
0
x = [4, 5, 6] 
li = [1, 2, 3, 7] 
li.insert(3,x) 
x+=li 
print(x) 

出力は次のようになります。なぜinsert関数と連結がこれを行うのですか?

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

Iのpython /コーディングに新たなんだと私はこれらの楕円が何であるか知らないが、私は他のコードを実行するとき、それは奇妙な取得を開始します。何が起こっているのかわからないので、何を尋ねるのか分からなかった。ありがとうございました!

+1

*何が起こっているのかわからないので、何を聞くべきかわかりませんでした。 。問題が何であるかわからないので、何を答えていいのか分かりません。 –

+0

リストにリストを挿入したくないと思います。リストの項目をリストに挿入するとします。 –

+0

位置3にオブジェクト 'x'を挿入しています。' x'はリストであるため、リスト内にリストを挿入しています。 –

答えて

1

リストの中にリストを挿入していますが、おそらくあなたが望むものではありません。その後

リストのこの

x+=li 

表現をしている、あなたがで複数の項目を挿入するには、それ自体からのリスト(xはすでにliで参照されている)

を参照しているので省略記号を示し一度リスト内でスライスを割り当てることができます:

>>> x = [4, 5, 6] 
>>> li = [1, 2, 3, 7] 
>>> li[3:3] = x 
>>> li 
[1, 2, 3, 4, 5, 6, 7] 
+0

ありがとう!だから私が集めたのは、私が使ったインサート関数は、実際に 'x'自体を参照していて、単にその値を取っているのではないということですか?ありがとう – Doej

+0

それはpythonの仕組みだからです:すべてが参照であり、リストは変更可能です。これを行うには、 'x'のコピーを使用してください:' x [:] 'または' list(x) ' –

関連する問題