haju__log
[python] 슬라이스(slice), 슬라이스로 리스트 수정하기 본문
반응형
✅ 슬라이싱(slicing)
- 리스트나 문자열에서 값을 여러 개 가져오는 기능
- 전달 받은 범위의 값을 복사하여 전달하는 것!! ⭐
- list[a:b] 일 경우, a~b-1까지 출력함
text= "hello world"
print(text)
text = text[1:5]
print(text)
list=[0,1,2,3,4,5]
print(list)
list=list[1:3]
print(list)
- slice를 하면 해당하는 부분의 리스트나 문자열을 새로 만들어 준다.
- 시작과 끝부분 가져오기
# 2번째 인덱스부터 끝까지 반환
list[2:]
# 처음부터 1번째 인덱스의 값까지 반환
list[:2]
# 처음부터 끝까지 전부 반환
list[:]
- 역순으로 가져오기
list1=[1,2,3,4,5]
# 뒤에 있는 값 3개를 출력하기
print(list1[-3:])
# 답 : [3,4,5]
# 역순으로 출력하기
print(list1[::-1])
답 : [5, 4, 3, 2, 1]
✅ Slice의 step
- slice한 값의 범위에서 step 값을 주어 그 값만큼 건너뛰어 가져오는 기능
- list[시작값:끝값:step]
list1=list(range(20))
print(list1)
# 인덱스가 5~14인 요소를 출력
print(list1[5:15])
# 인덱스를 2씩 증가시키면서 요소를 가져옴
print(list1[5:15:2])
- step 값을 음수로 설정할 수 있음!
list1=list(range(20))
print(list1)
# 거꾸로 출력하는데, 5인덱스 이전까지 출력이므로,
# 마지막 요소는 6이 된다!
print(list1[15:5:-1])
# 거꾸로 인덱스를 2씩 감소시키면서 요소를 가져옴
print(list1[15:5:-2])
✅ Slice로 리스트 수정 활용
- 삭제
numbers=list(range(10))
print("원래 리스트:",numbers)
print("요소 하나만 삭제")
del numbers[0]
print(numbers)
print("범위 설정해서 삭제")
del numbers[:5]
print(numbers)
- 수정
- 수정할 값을 넣을 땐, list[1:3]= 8 불가! 꼭 []에 값을 넣어야한다. ( list[1:3]=[8] )
numbers=list(range(6,10))
print("원래 리스트:",numbers)
print("범위 확인")
print(numbers[1:3])
print("범위 설정한 부분 한번에 값 바꾸기")
numbers[1:3]=[77,88]
print(numbers)
print("범위 설정한 부분보다 많은 값을 추가할 수도 있다!")
numbers[1:3]=[77,88,99]
print(numbers)
print("범위 설정한 부분 보다 더 적은 개수로 수정할 수 있다!")
numbers[1:4]=[5]
print(numbers)
반응형
'코테관련 이론' 카테고리의 다른 글
[python] 코딩테스트에서 여러 개의 값 입력받기 (map 이용) (0) | 2023.05.16 |
---|---|
[python] 논리연산 - 단락평가 (0) | 2023.05.02 |
[python] 리스트와 문자열 (split, join 이용) (0) | 2023.05.02 |
[python] 리스트 메서드 정리 (List Method) (0) | 2023.05.01 |
[python] 예외 처리 (try, except, exception, raise) (0) | 2023.05.01 |