[python] 파이썬에서 목록을 어떻게 바꿀 수 있습니까?
파이썬에서 다음을 어떻게 할 수 있습니까?
array = [0, 10, 20, 40]
for (i = array.length() - 1; i >= 0; i--)
배열의 요소가 필요하지만 처음부터 끝까지 필요합니다.
답변
reversed
이 기능을 다음과 같이 사용할 수 있습니다 .
>>> array=[0,10,20,40]
>>> for i in reversed(array):
... print(i)
참고 reversed(...)
목록을 반환하지 않습니다. 을 사용하여 반전 된 목록을 얻을 수 있습니다 list(reversed(array))
.
답변
>>> L = [0,10,20,40]
>>> L[::-1]
[40, 20, 10, 0]
확장 슬라이스 구문은 Python 의 새로운 기능 릴리스에 잘 설명되어 있습니다.2.3.5
의견의 특별한 요청에 의해 이것은 최신 슬라이스 문서 입니다.
답변
>>> L = [0,10,20,40]
>>> L.reverse()
>>> L
[40, 20, 10, 0]
또는
>>> L[::-1]
[40, 20, 10, 0]
답변
이것은 목록을 복제하는 것입니다.
L = [0,10,20,40]
p = L[::-1] # Here p will be having reversed list
이것은 목록을 그 자리에서 뒤집는 것입니다.
L.reverse() # Here L will be reversed in-place (no new list made)
답변
파이썬에서 목록을 뒤집는 가장 좋은 방법은 다음과 같습니다.
a = [1,2,3,4]
a = a[::-1]
print(a)
>>> [4,3,2,1]
작업이 완료되었으며 이제 목록이 반전되었습니다.
답변
동일한 목록을 되돌리려면 다음을 사용하십시오.
array.reverse()
다른 목록에 역순으로 목록을 할당하려면 다음을 사용하십시오.
newArray = array[::-1]
답변
예를 들어, array = array [::-1]과 같은 슬라이싱을 사용하는 것은 깔끔한 트릭이자 매우 Pythonic이지만 초보자에게는 약간 모호합니다. reverse () 메소드를 사용하면 쉽게 읽을 수 있기 때문에 매일 코딩하는 것이 좋습니다.
그러나 인터뷰 질문에서와 같이 목록을 뒤집어 야하는 경우에는 이와 같은 내장 방법을 사용하지 못할 수 있습니다. 면접관은 파이썬 지식의 깊이보다는 문제에 어떻게 접근하는지 살펴보고 알고리즘 접근법이 필요합니다. 클래식 스왑을 사용하는 다음 예제는이를 수행하는 한 가지 방법 일 수 있습니다.
def reverse_in_place(lst): # Declare a function
size = len(lst) # Get the length of the sequence
hiindex = size - 1
its = size/2 # Number of iterations required
for i in xrange(0, its): # i is the low index pointer
temp = lst[hiindex] # Perform a classic swap
lst[hiindex] = lst[i]
lst[i] = temp
hiindex -= 1 # Decrement the high index pointer
print "Done!"
# Now test it!!
array = [2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]
print array # Print the original sequence
reverse_in_place(array) # Call the function passing the list
print array # Print reversed list
**The result:**
[2, 5, 8, 9, 12, 19, 25, 27, 32, 60, 65, 1, 7, 24, 124, 654]
Done!
[654, 124, 24, 7, 1, 65, 60, 32, 27, 25, 19, 12, 9, 8, 5, 2]
문자열과 튜플은 변경할 수 없기 때문에 튜플이나 문자열 시퀀스에서는 작동하지 않습니다. 즉, 요소를 변경하기 위해 쓸 수 없습니다.