3.1 인덱스 범위
리스트에서 서브리스트를 얻는 것은 흔한 작업으로, 슬라이싱 (slicing) 메커니즘을 사용하여 해결할 수 있어. 슬라이싱은 시작과 끝 인덱스를 지정하고, 요소를 추출할 때 사용할 스텝을 지정하여 리스트에서 요소를 추출하게 해줘.
슬라이싱 사용하기
리스트의 슬라이스는 이 구문을 사용하여 얻을 수 있어: list[start
:stop
:step
], 여기서:
-
start
— 시작 인덱스 (포함); -
stop
— 끝 인덱스 (비포함); -
step
— 요소를 선택할 스텝.
슬라이스 구문을 사용하면 추출하고 싶은 리스트의 시작과 끝 인덱스를 지정할 수 있어. 기억해, Python의 인덱싱은 0에서 시작해, 즉 첫 번째 요소는 0번째 인덱스고, 세 번째는 2번째 인덱스야.
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 세 번째부터 일곱 번째 요소까지 서브리스트 얻기
sub_list = my_list[2:7]
print(sub_list) # [2, 3, 4, 5, 6]
# 리스트의 각 두 번째 요소 얻기
step_list = my_list[0:10:2]
print(step_list) # [0, 2, 4, 6, 8]
start
가 지정되지 않으면 기본값으로 리스트의 시작이 되고, stop
이 지정되지 않으면 리스트의 끝이야. step
이 지정되지 않으면 기본값은 1이야.
예시:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 시작부터 세 번째 요소까지
sub_list = my_list[:3]
print(sub_list) # [0, 1, 2]
# 첫 번째 요소/인덱스부터 끝까지
step_list = my_list[1:]
print(step_list) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
3.2 음수 인덱스
Python에서 음수 인덱스는 리스트 끝에서 요소에 접근하게 해주는 강력한 방법이야. 이는 원래 리스트의 정확한 길이를 알지 못할 때 특히 유용해.
Python에서는 음수 인덱스가 -1에서 시작하는데, 이는 리스트의 마지막 요소를 나타내. -2는 두 번째 마지막 요소를 가리키고, 계속 그렇게 돼. 음수 인덱스를 사용하면 리스트의 끝에서부터 요소에 쉽게 접근할 수 있어.
사용 예시
리스트가 있다고 가정하자:
my_list = ['a', 'b', 'c', 'd', 'e']
마지막 세 요소를 얻으려면 음수 인덱스를 사용한 슬라이스를 사용할 수 있어:
sub_list = my_list[-3:]
print(sub_list) # ['c', 'd', 'e'] 출력
끝에서 시작하여 요소 사이에 서브리스트를 얻으려면 음수 및 양수 인덱스를 조합할 수 있어:
sub_list = my_list[-4:3]
print(sub_list) # ['b', 'c'] 출력
리스트를 뒤집을 수도 있어
step 파라미터를 사용하여 예를 들어 역순으로 요소를 추출하는 등 복잡한 슬라이스를 만들 수 있어:
sub_list = my_list[::-1]
print(sub_list) # ['e', 'd', 'c', 'b', 'a'] 출력
음수 인덱스 사용의 장점:
- 코드 간소화: 리스트 끝에서 요소에 쉽게 접근할 수 있어 추가 계산이 필요 없어.
- 유연성: 리스트 크기에 관계없이 어떤 리스트에서도 작동해.
- 가독성: 마지막 요소를 다룰 때 코드가 더 읽기 쉽고 이해하기 쉬워져.
음수 인덱스는 Python 프로그래머에게 리스트를 효과적으로 관리하고 코드의 가독성과 유연성을 향상시키는 강력한 도구야.
3.3 리스트에 요소가 있는지 확인하기
리스트에 요소가 있는지 확인하는 것은 데이터 흐름을 제어하고 프로그램의 로직을 관리할 때 자주 사용돼. Python에서는 in
연산자를 사용하여 이를 수행할 수 있으며, 요소가 리스트에 있다면 True
, 그렇지 않으면 False
를 반환해.
in
연산자 사용하기
in
연산자는 간단하고 직관적인 방법으로 요소의 존재 여부를 확인해:
my_list = [1, 2, 3, 4, 5]
element = 3
exists = element in my_list
print(exists) # True 출력
조건문에서의 사용
in
연산자는 조건문에서 자주 사용돼, 예를 들어:
my_list = ["apple", "banana", "cherry"]
element = "apple"
if element in my_list:
print("요소가 리스트에 있어.")
else:
print("요소가 없어.")
유용해!
in
으로 요소를 찾는 것은 작은 또는 중간 크기의 리스트에 대해 효율적이야. 하지만 데이터가 매우 크거나 검색 작업이 빈번한 경우 더 빠른 검색을 제공하는 set
같은 다른 데이터 구조를 사용하는 것이 더 효율적일 수 있어.
GO TO FULL VERSION