파이썬 프로그래밍의 힘리스트리스트 정리

Q

리스트 Slice 관련 질문입니다.

조회 1882

좋아요 4

2019년 9월 29일

print(numbers[1:-1:3])
print(numbers[1::-1])

이런 방식으로의 slice도 있던데, 영어설명을 봐도 잘 이해가 가지않아서요 ㅠㅠ

두번째 : 뒤에 오는 숫자의 의미와 연달아 :: 두개가 있는 경우는 무엇을 의미하나요?

리스트 Slice 관련 질문입니다.
A
1개의 답변이 있어요
커뮤니티 파트너 채택

보통 [1:-1]의 slice는 범위를 의미하죠?


[1:-1:3]의 방식 slice는 저도 이번에 처음해봤네요...ㅎㅎ 대충 테스트 해보니까 두번째 : 다음 숫자는 step을 의미하네요!


예시로 알려드릴게요!

some_list = [11,3,6,4,12,1,2]

print(some_list[1:-1]) # [3, 6, 4, 12, 1] print(some_list[1:-1:1]) # [3, 6, 4, 12, 1] print(some_list[1:-1:2]) # [3, 4, 1] print(some_list[1:-1:3]) # [3, 12] print(some_list[1:-1:0]) # ValueError: slice step cannot be zero

주석으로 달아둔 게 print의 결과에요!


print(some_list[1:-1])print(some_list[1:-1:1])의 결과가 같죠? step의 값으로 1을 주면 모든 값을 표현해요. 즉, step은 나온 결과에서 1을 주면 모든 값, 2를 주면 하나씩 건너띄면서 표현해요.


그래서 마지막 예시인 print(some_list[1:-1:0]에서 step에 0을 주면 에러가 발생하더라구요!저도 이 에러가 발생하고 나서야 정확하게 아 이게 step이구나 싶었어요 ㅎㅎㅎ


영어이지만... 조금 더 자세한 정보는 여기를 가서 확인해보시면 좋을 것 같아요! ( TMI지만 python 2.3에 신기능으로 추가된 기능인가봐요! )

2019년 9월 29일

댓글 1

2019년 9월 30일
와 감사해요 ㅠㅠㅠ 정말 친절한 답변 감사합니다!! 다음에는 저도 꾸준히 시도해보고 스스로 알아내보려고 해봐야겠어요 ㅎㅎ 감사합니다! :)

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇