슬라이싱을 이용한 리스트 뒤집기
이 단계에서는 Python 에서 리스트를 뒤집기 위해 슬라이싱이 어떻게 사용되는지에 중점을 둡니다. 슬라이싱은 리스트의 일부를 추출할 수 있는 강력한 기능이며, 리스트의 뒤집힌 복사본을 만드는 데에도 사용할 수 있습니다.
palindrome.py 파일을 다시 살펴보고 슬라이싱 기술을 자세히 살펴보겠습니다.
-
VS Code 편집기에서 palindrome.py 파일을 엽니다.
-
palindrome.py 파일의 내용이 다음과 같은지 확인합니다.
def is_palindrome(lst):
reversed_lst = lst[::-1]
return lst == reversed_lst
## Example lists
list1 = [1, 2, 3, 2, 1]
list2 = [1, 2, 3, 4, 5]
## Check if the lists are palindromes
print(f"{list1} is a palindrome: {is_palindrome(list1)}")
print(f"{list2} is a palindrome: {is_palindrome(list2)}")
이 코드의 핵심 부분은 lst[::-1]입니다. 이것은 리스트의 뒤집힌 복사본을 만드는 슬라이싱 연산입니다. 자세히 살펴보겠습니다.
lst[:]는 전체 리스트의 복사본을 만듭니다.
lst[start:end]는 인덱스 start에서 end-1까지의 슬라이스를 만듭니다.
lst[start:end:step]을 사용하면 step을 지정할 수 있습니다. step이 -1이면 리스트를 뒤로 반복합니다.
start와 end를 생략하고 step을 -1로 사용하면 (즉, lst[::-1]) 전체 리스트의 뒤집힌 복사본을 만듭니다.
이를 더 자세히 설명하기 위해 슬라이싱의 효과를 확인하기 위해 몇 가지 print 문을 추가해 보겠습니다.
def is_palindrome(lst):
reversed_lst = lst[::-1]
print(f"Original list: {lst}")
print(f"Reversed list: {reversed_lst}")
return lst == reversed_lst
## Example lists
list1 = [1, 2, 3, 2, 1]
list2 = [1, 2, 3, 4, 5]
## Check if the lists are palindromes
print(f"{list1} is a palindrome: {is_palindrome(list1)}")
print(f"{list2} is a palindrome: {is_palindrome(list2)}")
이제 스크립트를 다시 실행합니다.
python ~/project/palindrome.py
회문 검사 결과 전에 원래 리스트와 뒤집힌 리스트가 출력되는 것을 볼 수 있습니다.
Original list: [1, 2, 3, 2, 1]
Reversed list: [1, 2, 3, 2, 1]
[1, 2, 3, 2, 1] is a palindrome: True
Original list: [1, 2, 3, 4, 5]
Reversed list: [5, 4, 3, 2, 1]
[1, 2, 3, 4, 5] is a palindrome: False
이것은 [::-1]을 사용한 슬라이싱이 어떻게 효과적으로 리스트를 뒤집고, 이를 사용하여 원래 리스트가 회문인지 여부를 결정하는지 보여줍니다.