Python 리스트 요소끼리 빼기 연산하기
🧑‍💻 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴/Python

Python 리스트 요소끼리 빼기 연산하기

리스트 끼리 빼보려고 했는데 안되더라구요. 나중에 기억하기 위해서 포스팅합니다.


 

 

 List 요소끼리 빼기 연산하기 

에러가 나는 이유

a = [1, 2, 3]
b = [4, 5, 6]
print(a - b)

위와 같은 코드를 작성하니 다음과 같은 에러가 납니다.

TypeError: unsupported operand type(s) for -: 'list' and 'list'

그니까 리스트가 지원되지 않는 피연산자라고 합니다.

왜 머릿속에서는 당연히 연산이 될거라고 생각했을까요? 

 

a = [1, 2, 3]
b = [4, 5, 6]
# print(a - b)
print(a + b)

c = ['a', 'b']
d = ['c', 'b']
# print(c - d)
print(c + d)
# 출력
[1, 2, 3, 4, 5, 6]
['a', 'b', 'c', 'b']

왜냐하면 더하기 연산은 되기 때문입니다..

보면 str 타입도 안됩니다.

더하기와 빼기는 항상 같이 생각해서 빼기도 될거라고 무의식 중에 생각을 했나봐요.

그럼 어떻게 해결을 하면 될까요? 바로 zip() 을 사용하면 해결할 수 있습니다.

 

해결

a = [1, 2, 3]
b = [4, 5, 6]
print([ai - bi for ai, bi in zip(a, b)])
# 출력
[-3, -3, -3]

zip 을 이용해서 반복문을 돌아서 하나씩 빼줍니다.

반복문을 펼쳐보면 다음과 같아요.

for ai, bi in zip(a, b):
    print(ai, bi, ai - bi)
# 출력
1 4 -3
2 5 -3
3 6 -3

a와 b를 하나의 패키지처럼 묶는 것입니다. 그래서 하나씩 요소를 들고오는거에요.

그리고 빼기 산술 연산을 적용해줍니다.

 

 

 

 

 

 

 

 

python 리스트 빼기 연산

python 리스트 요소끼리 산술 빼기 연산 zip


 

728x90