ここに小さなスクリプトがあります:
class Any(object):
def __init__(self,x):
self.x=x
l = [Any(2),Any(3),Any(7),Any(9),Any(10)]
print(len(l))
l2=[ind for ind in l]
l3=l
print(set(l2).difference(l3))
print(l2[1]==l[1])
print(l3[1]==l[1])
del l2[1]
print(len(l))
del l3[1]
print(len(l))
Any
inのインスタンスを削除l2
しても変更されないのに、l2 と l3 に違いがないように見えるl
のに、 in で削除するとl3
変更されるのはなぜですか?l
どうもありがとう!