Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- android
- 시스템
- lombok
- 코틀린
- write by GPT-4
- oracle
- 고전역학
- 뉴턴역학
- 자바암호
- 자바네트워크
- python
- write by chatGPT
- 리눅스
- 파이썬
- flet
- 역학
- 인프라
- NIO
- Spring boot
- 웹 크롤링
- GPT-4's answer
- GIT
- Java
- 소프트웨어공학
- 자바
- chatGPT's answer
- Database
- kotlin
- JVM
- 유닉스
Archives
- Today
- Total
Akashic Records
[추가자료] 2.2 변수와 자료형 리스트(list) 슬라이싱 본문
728x90
리스트의 일부분을 다루는 작업을 "슬라이싱(slicing)"이라고 합니다. 파이썬에서 슬라이싱을 사용하면 리스트의 특정 부분만을 쉽게 추출할 수 있습니다. 슬라이싱은 리스트[start:end:step]
형식으로 사용되며, start
는 시작 인덱스, end
는 종료 인덱스(하지만 이 인덱스의 요소는 포함되지 않음), step
은 요소들 사이의 간격을 지정합니다.
다음은 파이썬 리스트 슬라이싱을 사용한 몇 가지 예시입니다:
예시 코드 1: 기본 슬라이싱
# 리스트 생성
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 리스트의 일부 추출
subset = numbers[2:6]
print("기본 슬라이스:", subset) # [2, 3, 4, 5]
예시 코드 2: 스텝 지정
# 스텝을 이용해 리스트의 일부 추출
subset_step = numbers[1:8:2]
print("스텝이 있는 슬라이스:", subset_step) # [1, 3, 5, 7]
예시 코드 3: 음수 인덱스와 슬라이싱
# 음수 인덱스를 사용하여 리스트의 끝에서 부분 추출
subset_negative = numbers[-5:-1]
print("음수 인덱스 슬라이스:", subset_negative) # [5, 6, 7, 8]
예시 코드 4: 전체 리스트를 스텝으로 슬라이싱
# 전체 리스트에 스텝 적용
every_other = numbers[::2]
print("전체 리스트의 홀수 위치 값들:", every_other) # [0, 2, 4, 6, 8]
예시 코드 5: 리스트 뒤집기
# 리스트를 뒤집기
reversed_numbers = numbers[::-1]
print("리스트 뒤집기:", reversed_numbers) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
위의 예제들은 파이썬에서 리스트의 일부분을 다루는 다양한 방법을 보여줍니다. 슬라이싱을 사용하면 매우 간단하고 효율적으로 데이터의 부분 집합을 처리할 수 있습니다.
예시 코드: 전체
# 리스트 생성
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 리스트의 일부 추출
subset = numbers[2:6]
print("기본 슬라이스:", subset) # [2, 3, 4, 5]
# 스텝을 이용해 리스트의 일부 추출
subset_step = numbers[1:8:2]
print("스텝이 있는 슬라이스:", subset_step) # [1, 3, 5, 7]
# 음수 인덱스를 사용하여 리스트의 끝에서 부분 추출
subset_negative = numbers[-5:-1]
print("음수 인덱스 슬라이스:", subset_negative) # [5, 6, 7, 8]
# 전체 리스트에 스텝 적용
every_other = numbers[::2]
print("전체 리스트의 홀수 위치 값들:", every_other) # [0, 2, 4, 6, 8]
# 리스트를 뒤집기
reversed_numbers = numbers[::-1]
print("리스트 뒤집기:", reversed_numbers) # [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
players = ['charles', 'martina', 'michael', 'florence', 'eli']
# 처음부터 4번째까지 ['charles', 'martina', 'michael', 'florence']
print(players[:4])
# 3번째부터 마지막까지 ['michael', 'florence', 'eli']
print(players[2:])
print("Here are the first three players on my team:")
for player in players[:3]: # 1
print(player.title())
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:] # 리스트를 복사 두개는 다른 메모리 참조
my_foods.append('cannoli')
friend_foods.append('ice cream')
# 두개는 별도의 리스트
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
my_foods = ['pizza', 'falafel', 'carrot cake']
# 두개는 같은 메모리 참조
friend_foods = my_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print("My favorite foods are:")
print(my_foods)
print("\nMy friend's favorite foods are:")
print(friend_foods)
range 함수 사용
Python에서 range
함수는 특정 범위의 숫자를 생성하는 데 사용됩니다. 이 함수는 for 루프와 함께 자주 사용되며, 지정된 범위에 따라 숫자 시퀀스를 생성합니다. range
함수는 매우 유용하며 메모리를 효율적으로 사용하는 이터러블 객체를 생성합니다.
range 함수의 기본 구성
range
는 최대 세 개의 매개변수를 받을 수 있습니다:
- start: 시퀀스의 시작 숫자입니다. 이 매개변수를 생략하면
0
에서 시작합니다. - stop: 시퀀스의 종료 숫자로, 이 값은 생성된 시퀀스에 포함되지 않습니다. 이 매개변수는 필수입니다.
- step: 숫자 간의 간격을 지정합니다. 이 매개변수를 생략하면
1
이 기본값입니다.
range의 사용 예시
# 0부터 9까지의 숫자 생성
for i in range(10):
print(i)
# 5부터 9까지의 숫자 생성
for i in range(5, 10):
print(i)
# 0부터 9까지, 각 숫자 사이에 2의 간격을 두고 생성
for i in range(0, 10, 2):
print(i)
# 10부터 1까지 역순으로 숫자 생성
for i in range(10, 0, -1):
print(i)
range 함수의 특징
- 메모리 효율성:
range
는 필요할 때만 숫자를 생성합니다. 이는 "지연 평가" 또는 "lazy evaluation"이라고 불리며,range
객체 자체는 생성된 모든 숫자를 메모리에 보관하지 않습니다. 이는 큰 범위의 숫자를 사용할 때 매우 유용합니다. - 이터러블:
range
객체는 반복 가능한 객체로,for
루프에서 사용할 수 있습니다. 하지만 리스트나 튜플과 같은 일반적인 컬렉션 타입은 아니며, 인덱싱이나 슬라이싱은 가능하지만, 리스트의 메서드들은 사용할 수 없습니다. - 불변성:
range
객체는 생성 후 변경할 수 없습니다. 따라서, 한 번 생성되면 그 매개변수를 변경할 수 없습니다.
range
는 파이썬에서 매우 자주 사용되는 함수이며, 특히 루프와 함께 자주 사용되므로 그 사용법을 잘 익혀 두면 매우 도움이 됩니다.
728x90
'Python for Beginners' 카테고리의 다른 글
PEP(Python Enhancement Proposal) 8 (0) | 2024.05.28 |
---|---|
[추가자료] 2.2 변수와 자료형 딕셔너리(Dictionary) 함수들 (1) | 2024.05.24 |
[추가자료] 2.2 변수와 자료형 리스트(list) 함수들 (0) | 2024.05.23 |
파이썬의 철학 (The Zen of Python) (0) | 2024.05.23 |
[추가자료] 2.2 변수와 자료형 문자열 함수들 (0) | 2024.05.23 |
Comments