- 1. 파이썬 두 리스트 비교하기
- 2. 파이썬으로 html 파일 만들기
- 3. 파이썬 리스트 순서 뒤집기
- 4. 파이썬 리스트 요소 삭제하기
- 5. 파이썬 두 문자열 비교하기 (difflib)
- 6. 파이썬 문자열 앞을 0으로 채우기
- 7. 파이썬 문자열 찾기
- 8. 파이썬 모든 문자열 찾아서 바꾸기
- 9. 파이썬 문자열 결합, 분리하기
- 10. 파이썬 문자열 포맷팅하기
- 11. 파이썬 리스트 슬라이싱 활용하기
- 12. 파이썬 리스트 길이 제한하기
- 13. 파이썬 조건문 간단하게 표현하기
- 14. 파이썬 with 문으로 파일 열고 닫기
- 15. 파이썬 enumerate() 사용하기
- 16. 파이썬 zip() 사용하기
- 17. 파이썬 튜플 언패킹하기
- 18. 파이썬 변수 바꾸기 (swap)
- 19. 파이썬 딕셔너리에서 값 얻기
- 20. 파이썬 출력 결과 저장하기
- 21. 파이썬 폴더 생성하기
- 22. 파이썬 시간 측정하기
- 23. 파이썬 int() 함수 사용하기
- 24. 파이썬 float() 함수 사용하기
- 25. 파이썬 리스트 만들기
- 26. NumPy 어레이 슬라이싱 활용하기
- 27. NumPy 어레이 한 줄에 출력하기
- 28. NumPy 어레이 요소 바꾸기
- 29. NumPy 어레이 정렬 (np.argsort)
- 30. NumPy 어레이 연결, 분리하기
- Python Tutorial
- NumPy Tutorial
- Matplotlib Tutorial
- PyQt5 Tutorial
- BeautifulSoup Tutorial
- xlrd/xlwt Tutorial
- Pillow Tutorial
- Googletrans Tutorial
- PyWin32 Tutorial
- PyAutoGUI Tutorial
- Pyperclip Tutorial
- TensorFlow Tutorial
- Tips and Examples
1. 파이썬 두 리스트 비교하기¶
파이썬 리스트와 NumPy 어레이는 가장 흔하게 쓰이는 자료형 중 하나입니다.
두 개의 리스트 또는 어레이를 비교하기 위한 다양한 방법에 대해 소개합니다.
■ Table of Contents
1) 파이썬 비교 연산자 사용하기¶
두 개의 파이썬 리스트를 비교하는 가장 간단한 방법은 연산자 ‘==’를 사용하는 것입니다.
‘==’는 파이썬의 비교 연산자 중 하나로서 두 피연산자가 같을 경우 True를, 그렇지 않을 경우 False를 반환합니다.
자세한 내용은 Python 연산자 - 비교 연산자 페이지를 참고하세요.
예제¶
list1 = [[1, 2], [3, 4]]
list2 = [[1, 2], [3, 4]]
print(list1 == list2)
list3 = [[1, 2], [3, 4]]
list4 = [[1, 2], [5, 4]]
print(list3 == list4)
True
False
두 리스트에 대해 비교 연산자 ‘==’를 사용하면,
두 리스트가 동일할 경우 True를, 그렇지 않은 경우 False를 반환합니다.
2) 파이썬 내장함수 sorted() 사용하기¶
길이가 같은 두 리스트에 대해 성분이 동일한지 확인하고 싶다면 sorted()를 사용해서 정렬한 후 비교할 수 있습니다.
파이썬 내장함수 sorted()는 기본적으로 리스트를 오름차순으로 정렬합니다.
sorted() 함수에 대해서는 Python 내장함수 - sorted() 페이지를 참고하세요.
예제¶
list5 = [1, 2, 3, 4, 5]
list6 = [3, 1, 4, 5, 2]
print(sorted(list5) == sorted(list6))
True
크기순으로 정렬한 리스트의 길이가 같고 요소들이 같을 경우 True를, 그렇지 않은 경우 False를 반환합니다.
3) 파이썬 내장함수 set() 사용하기¶
요소의 개수와 중복에 관계없이 동일한 요소들로 이루어져 있는지 확인하고 싶다면 파이썬 집합 자료형을 사용할 수 있습니다.
집합은 중복을 허용하지 않는, 순서를 고려하지 않는 자료형입니다.
자세한 내용은 Python 집합 (Sets) 페이지를 참고하세요.
숫자들의 1차원 리스트를 파이썬 내장함수 set()에 입력하면 집합의 형태로 반환합니다.
예를 들어 리스트 [1, 2, 3, 1, 2, 4]을 집합형으로 변환하면 {1, 2, 3, 4}가 됩니다.
예제¶
list1 = [1, 2, 3, 1, 2, 4]
list2 = [2, 3, 1, 5, 3]
list3 = [1, 3, 2, 4, 1]
print(set(list1))
print(set(list2))
print(set(list3))
print(set(list1) == set(list2))
print(set(list1) == set(list3))
{1, 2, 3, 4}
{1, 2, 3, 5}
{1, 2, 3, 4}
False
True
list1과 list2는 다른 요소들의 집합이고, list1과 list3은 같은 요소들로 이루어진 집합이므로
각각 False와 True를 반환합니다.
4) np.array_equal() 사용하기¶
두 개의 NumPy 어레이를 비교하기 위해서는 np.array_equal()을 사용할 수 있습니다.
np.array_equal()는 두 어레이를 비교하기 위한 함수입니다.
np.array_equal() 함수에 대해서는 NumPy 다양한 함수들 - numpy.array_equal 페이지를 참고하세요.
예제¶
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[1, 2], [3, 4]])
print(np.array_equal(arr1, arr2))
arr3 = np.array([[1, 2], [3, 4]])
arr4 = np.array([[1, 2], [5, 4]])
print(np.array_equal(arr3, arr4))
True
False
arr1과 arr2는 어레이의 형태와 요소들이 동일하므로 True를 반환합니다.
arr3과 arr4는 어레이의 형태는 같지만, 모든 요소들이 동일하지는 않으므로 False를 반환합니다.
5) np.equal() 사용하기¶
np.equal() 함수를 사용하면, 각 요소 단위로 값을 비교해서 True 또는 False 값을 반환합니다.
np.equal() 함수에 대해서는 NumPy 다양한 함수들 - numpy.equal 페이지를 참고하세요.
예제¶
import numpy as np
a = np.array([0, 1, 3])
b = np.arange(3)
print(np.equal(a, b))
print(a == b)
[ True True False]
[ True True False]
Numpy 어레이에 대해 비교 연산자 ‘==’를 사용하면, np.equal() 함수와 같이 동작합니다.
6) np.isclose(), np.allclose() 사용하기¶
두 NumPy 어레이의 각 요소가 허용 오차 (tolerance) 내에서 차이가 있는지 확인하고 싶다면,
np.isclose() 또는 np.allclose() 함수를 사용할 수 있습니다.
np.isclose(), np.allclose() 함수에 대한 자세한 내용은 numpy.isclose, numpy.allclose 페이지를 참고하세요.
Syntax¶
numpy.isclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)
numpy.allclose(a, b, rtol=1e-05, atol=1e-08, equal_nan=False)
a, b에는 비교할 어레이를 입력합니다.
rtol은 상대적 허용 오차 (Relative tolerance), atol은 절대적 허용 오차 (Absolute tolerance)를 나타냅니다.
Tolerance¶
absolute(a - b) <= (atol + rtol * absolute(b))
허용 오차는 위 수식과 같이 rtol, atol 값과 어레이의 값들에 의해 결정됩니다.
예제1¶
import numpy as np
a = [1.0, 10.0]
b = [0.9, 9.0]
print(np.isclose(a, b))
print(np.allclose(a, b))
[False False]
False
np.isclose(a, b)는 어레이의 각 요소의 차이가 허용 오차 내에 있는지 확인하는데,
rtol과 atol을 지정해주지 않았기 때문에 허용 오차는 (1e-8 + 1e-5 * 0.9)와 (1e-8 + 1e-5 * 9.0)이 됩니다.
각 어레이의 첫번째 요소들의 차이인 0.1과 두번째 요소들의 차이인 1.0은 모두 허용 오차보다 크기 때문에
np.isclose(a, b)는 [False False]가 됩니다.
np.allclose(a, b)는 np.isclose(a, b)의 값이 모두 True인 경우에만 True를 반환합니다.
예제2¶
import numpy as np
a = [1.0, 10.0]
b = [0.9, 9.0]
print(np.isclose(a, b, atol=0.5))
print(np.allclose(a, b, atol=0.5))
[ True False]
False
atol=0.5로 설정하면 허용 오차는 (0.5 + 1e-5 * 0.9)와 (0.5 + 1e-5 * 9.0)이 됩니다.
각 어레이의 첫번째 요소들의 차이인 0.1는 허용 오차 내에 있고, 두번째 요소들의 차이인 1.0은 허용 오차보다 크기 때문에
np.isclose(a, b)는 [ True False]가 됩니다.
np.allclose(a, b)는 False가 됩니다.
예제3¶
import numpy as np
a = [1.0, 10.0]
b = [0.9, 9.0]
print(np.isclose(a, b, rtol=0.5))
print(np.allclose(a, b, rtol=0.5))
[ True True]
True
rtol=0.5로 설정하면 허용 오차는 (1e-8 + 0.5 * 0.9)와 (1e-8 + 0.5 * 9.0)이 됩니다.
각 어레이의 첫번째 요소들의 차이인 0.1과 1.0은 모두 허용 오차 내에 있기 때문에
np.isclose(a, b)는 [ True True]가 됩니다.
np.allclose(a, b)는 True가 됩니다.