1. ホーム
  2. python

[解決済み] と[[]]の違いは何ですか?* 2

2022-02-09 17:02:52

質問

t0 = [[]] * 2                                                                   
t1 = [[], []]                                                                   

t0[0].append('hello')                                                           
print t0                                                                        

t1[0].append('hello')                                                           
print t1             

その結果は

[['hello'], ['hello']]
[['hello'], []]

でも、その違いがわからないんです。

どのように解決するのですか?

[[]] * 2 

を作ります。 浅いコピーです。 に相当する。

x = []
t0 = [x, x]

しかし

t1 = [[], []]

2つの別々の空リスト・リテラルを使用します。これらは完全に異なるので、一方を変異させてももう一方は明らかに変異させません。