파이썬로드

파이썬 리스트 자료형, 리스트 연산하기

CODINGLORD 2024. 6. 23. 14:36

1. 리스트 더하기

리스트 더하기는 두 리스트를 결합하여 하나의 리스트를 만드는 것입니다.

list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = list1 + list2
print(result)  # [1, 2, 3, 4, 5, 6]

 

2. 리스트 반복하기[*]

리스트 반복하기는 리스트를 특정 횟수만큼 반복하여 확장하는 것입니다.

list1 = [1, 2, 3]
result = list1 * 3
print(result)  # [1, 2, 3, 1, 2, 3, 1, 2, 3]

3. 리스트 길이 구하기

리스트 길이 구하기는 리스트에 있는 요소의 개수를 반환하는 것입니다. len함수를 사용해야 한다.

list1 = [1, 2, 3, 4, 5]
length = len(list1)
print(length)  # 5

len은 문자열, 리스트 외에 앞으로 배울 튜플과 딕셔너리에도 사용할 수 있는 함수이다. 십습에서 자주 사용하므로 잘 기억해 두자.


참고설명: 초보자가 범하기 쉬운 리스트 연산 오류

1. 리스트를 숫자와 더하려고 할 때

리스트는 숫자와 직접 더할 수 없습니다. 두 리스트를 더해야 합니다.

# 오류 발생 예제
list1 = [1, 2, 3]
# result = list1 + 4  # TypeError: can only concatenate list (not "int") to list

# 올바른 사용법
list2 = [4]
result = list1 + list2
print(result)  # [1, 2, 3, 4]

 

2. 리스트를 숫자와 곱할 때의 착각

리스트를 숫자와 곱하면 리스트가 반복되지만, 요소마다 곱해지는 것이 아닙니다.

# 요소마다 곱해지는 것이 아님
list1 = [1, 2, 3]
# result = list1 * 2  # [1, 2, 3, 1, 2, 3]

# 올바른 사용법: 요소마다 곱하기를 원한다면 반복문이나 리스트 컴프리헨션 사용
result = [x * 2 for x in list1]
print(result)  # [2, 4, 6]

 

3. 리스트 인덱스 범위를 벗어날 때

존재하지 않는 인덱스를 참조하면 IndexError가 발생합니다.

list1 = [1, 2, 3]

# 오류 발생 예제
# print(list1[3])  # IndexError: list index out of range

# 올바른 사용법
if len(list1) > 3:
    print(list1[3])
else:
    print("인덱스 범위를 벗어났습니다.")

이와 같이 리스트 연산을 할 때 주의해야 할 몇 가지 사항들이 있습니다. 올바른 방법으로 리스트를 다루면 오류를 피할 수 있습니다.