1. len() 함수는 가장 바깥쪽 컨테이너의 원소 개수만 셉니다.
nested_list = [[1, 2], [3, 4]]
print(len(nested_list)) # 2를 출력합니다, 내부 리스트의 원소는 세지 않습니다.
원소 자체가 리스트(또는 튜플이나 집합인 경우) 경우 1개로 계산합니다.
2. min(), max() 함수로 배열의 최솟값과 최댓값 구하기
# 숫자 리스트
numbers = [4, 2, 9, 7, 5, 1, 8, 3, 6]
# 최솟값 구하기
min_value = min(numbers)
print(f"최솟값: {min_value}") # 출력: 최솟값: 1
# 최댓값 구하기
max_value = max(numbers)
print(f"최댓값: {max_value}") # 출력: 최댓값: 9
min(), max() 함수의 인수로 리스트나 튜플을 넘겨주면 그 리스트 또는 튜플이 가진 원소 중에서 최솟값 또는 최댓값을 얻을 수 있습니다.
3. 빈 배열 판단하기
Python에서는 여러 가지 방법으로 배열이 비어있는지 확인할 수 있습니다.
len() 함수 사용하기
my_list = []
if len(my_list) == 0:
print("리스트가 비어있습니다.")
- 이 방법은 리스트의 길이를 직접 확인합니다.
- len() 함수는 리스트의 요소 수를 반환합니다.
- 빈 리스트의 길이는 0이므로, 이를 이용해 비어있는지 확인합니다.
논리 부정 연산자 사용
if not my_list:
print("리스트가 비어있습니다.")
- 파이썬에서 빈 리스트는 False로 평가됩니다.
- not 연산자를 사용하여 이를 반전시킵니다.
빈 리스트나 튜플과 직접 비교하기
if my_list == []:
print("리스트가 비어있습니다.")
- 리스트를 빈 리스트 []와 직접 비교합니다.
4. 비교 연산자로 배열의 대소 또는 등가 관계 판단하기
# 요소별 비교
print([1, 2, 3] < [1, 2, 4]) # True
print([1, 2, 3] > [1, 2, 2]) # True
print([1, 2, 3] == [1, 2, 3]) # True
# 길이 비교
print([1, 2, 3] < [1, 2, 3, 4]) # True
print([1, 2, 3, 4] > [1, 2, 3]) # True
# 복합적인 비교
print([1, 2, 3] < [1, 2, 4, 5]) # True (첫 번째 다른 요소에서 결정)
print([1, 2, 3, 4] > [1, 2, 3]) # True (길이로 결정)
# 문자열 리스트 비교
print(["apple", "banana"] < ["apple", "cherry"]) # True
print(["zebra"] > ["apple", "banana"]) # True (첫 번째 요소에서 결정)
배열의 대소 또는 등가 관계는 비교 연산자를 사용하여 판단합니다. 맨 앞 원소부터 차례대로 비교하면서 원소의 값이 크면 그 배열이 큰 것으로 판단합니다. 또 배열의 원소 수가 다른 경우에는 원소 수가 많은 배열을 더 크다고 판단합니다. 파이썬의 다른 시퀀스 타입(예: 튜플, 문자열)에도 동일하게 적용됩니다.
*등가성과 동일성은 다릅니다.
파이썬에서는 값을 비교할 때 등가성(equality)과 동일성(identity)를 사용합니다. 등가성 비교는 ==을, 동일성 비교는 is를 사용합니다. 등가성 비교는 좌변과 우변의 값이 같은지 비교하고, 동일성 비교는 값은 물론 객체의 식별 번호까지 같은지 비교합니다.
# 리스트 비교
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a == b) # True (등가성: 값이 같음)
print(a is b) # False (동일성: 다른 객체)
print(a is c) # True (동일성: 같은 객체를 참조)
# 정수 비교
x = 1000
y = 1000
print(x == y) # True (등가성: 값이 같음)
print(x is y) # False (동일성: 다른 객체)
# 작은 정수의 경우 (파이썬의 정수 인터닝)
small_x = 5
small_y = 5
print(small_x == small_y) # True
print(small_x is small_y) # True (작은 정수는 같은 객체를 참조)
# 문자열 비교
str1 = "Hello"
str2 = "Hello"
str3 = "Hel" + "lo"
print(str1 == str2) # True
print(str1 is str2) # True (문자열 인터닝으로 인해 같은 객체)
print(str1 is str3) # True (문자열 인터닝)
'TIL' 카테고리의 다른 글
[TIL] 컴퓨터 시스템 요약 - 1장. 컴퓨터 시스템으로의 여행 (1편) (4) | 2024.09.18 |
---|---|
[TIL] Python 문자열(String)의 불변성(Immutability) (1) | 2024.09.10 |
[TIL] 자료 구조와 배열 (Python) 4편 - 뮤터블과 이뮤터블 객체의 대입 (0) | 2024.09.10 |
[TIL] 파이썬의 인수 전달 방식 이해하기 (0) | 2024.09.09 |
[TIL] 자료 구조와 배열 (Python) 3편 - 인덱스싱, 슬라이싱 (1) | 2024.09.09 |