728x90
반응형
문제의 정의
- 파이썬에서 list 또는 numpy.array 타입의 변수를 비교해야 할 때가 있음
- numpy.array의 경우 == 연산자를 통해 직접 비교를 시도하면 다음과 같은 에러를 만나기도 함
Exception has occurred: ValueError
The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()...
문제 해결 방법
- list의 경우 == 연산자를 사용할 수도 있고 all과 zip의 조합 그리고 collections module을 사용할 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# 방법 1
list1 = [1, 2, 3]
list2 = [1, 2, 3]
if list1 == list2:
print("The lists are the same.")
else:
print("The lists are different.")
# 방법 2
list1 = [1, 2, 3]
list2 = [1, 2, 3]
if all(x == y for x, y in zip(list1, list2)) and len(list1) == len(list2):
print("The lists are the same.")
else:
print("The lists are different.")
# 방법 3
from collections import Counter
list1 = [1, 2, 3, 3]
list2 = [3, 2, 3, 1]
if Counter(list1) == Counter(list2):
print("The lists are the same.")
else:
print("The lists are different.")
|
cs |
- numpy.array의 경우 아래의 numpy.array_equal()을 사용할 수 있음
1
2
3
4
5
6
|
import numpy as np
a = np.identity(4).reshape(-1)
b = np.array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])
if np.array_equal(a, b):
print("same")
|
cs |
반응형
'Study > Python' 카테고리의 다른 글
지수표현 숫자를 python에서 쉽게 읽어드리고 다루기 (0) | 2023.08.24 |
---|---|
python 숫자 표기에서 e없이 출력하는 방법 (0) | 2023.08.24 |
변수 값을 복사하여 새로 만들기 (deepcopy) (1) | 2023.08.24 |
matplotlib에서 3D view의 axis ratio(비율) 조정하기 (0) | 2023.04.21 |
list에서 중복 요소를 효율적으로 확인하는 방법 (0) | 2023.04.21 |