0

以下の宣言は間違っていますか?構文エラーは発生しませんが、リストの場合ba値の追加操作が機能しないことがあります。

a=b=c=[]
 or 
a=b=c={}

a=b=c=1 //works
4

4 に答える 4

4
a=b=c=[]

動作しますが、あなたが望むことはしません。1 つのリスト オブジェクトを作成し、それに 3 つの異なる名前を関連付けます。

a.append(1)
print b # [1]

あなたが望むのはおそらく次のとおりです:

a, b, c = [], [], []

a、b、c は 3 つの独立したリストです。

于 2012-06-04T09:30:40.923 に答える
3

試してみましたか?

それはあなたが「間違っている」という意味に依存します。これは構文エラーではありませんが、 が同じリストを参照していることをa意味します。したがって、後で何かを追加すると、 と にも表示されます。bcabc

于 2012-06-04T09:29:12.243 に答える
0

Python のリストと辞書は可変です。以下のリンクで議論を読んでください。何を実験したいかについての非常に良いアイデアが得られます。

http://docs.python.org/release/2.5.2/lib/typesseq-mutable.html

于 2012-06-04T09:32:55.150 に答える
0

a=b=c=[]他のいくつかの回答は、3つの名前すべてが同じリストオブジェクトを参照するように正しく言っています。ただし、別のポイントがあります。Python では、何も宣言しません。それらに追加したい場合にのみ、名前を空のリストにする必要がありaます。それ以外の場合は、好きなように設定できます。bc

于 2012-06-04T09:40:25.637 に答える