1. list 비교
먼저 list의 비교부터 살펴보겠습니다.
list 는 내부 item의 내용과 순서 모두 확인 하기 때문에 비교시 순서도 맞아야합니다.
a = [1, 2, 3] b = [3, 2, 1] print(a==b) b[0] = 1 b[2] = 3 print(a==b)
위와 같은 경우 결과는 False, True가 나옵니다.
False True
2. dictionary 비교
이번에는 dict 타입입니다. dict는 key가 있기 때문에 key:value 순서쌍으로 비교해서 모두 같으면 True가 됩니다. 다음 예제를 보겠습니다.
a = {"a":1, "b":2 ,"c":3} b = {"c":3, "b":2 ,"a":1} c = {"a":1, "b":2 ,"c":2} print(a==b) # 1 print(b==c) # 2
결과는 순서에는 관계가 없습니다.
True False
3. 복합 비교
이번에는 좀 더 복잡한 예제입니다.
id() 함수가 나오는데 python에서 object id를 나타냅니다. 해당 id가 같으면 instance가 같다고 생각하면 됩니다.
d1 = {"a":1,"b":2} d2 = {"b":3,"a":1} d2["b"]=2 a = [1, 2, d1] b = [1, 2, d2] print("#1",id(d1),id(d2)) #1 2832145016384 2832145016448 print("#2",a==b) #2 True a = {"a":1, "b":2 ,"c":3} b = {"c":3, "b":2 ,"a":1} c = {"a":1, "b":2 ,"c":2} a["a"] = [] b["a"] = [] print("#3",a,b) #3 {'a': [], 'b': 2, 'c': 3} {'c': 3, 'b': 2, 'a': []} print("#4",a==b) #4 True
결과 d1, d2의 id가 다름에도 결과가 같음을 알 수 있습니다. 이는 내부적으로 key와 value를 일일이 확인한다고 생각하는게 좋습니다.
#1 2832145016384 2832145016448 #2 True #3 {'a': [], 'b': 2, 'c': 3} {'c': 3, 'b': 2, 'a': []} #4 True
list 와 dict 가 복잡하게 섞여있는 예제에서도 dict는 순서를 따지지 않고, list는 순서를 따지며 비교함을 알 수 있습니다.
댓글 없음:
댓글 쓰기