Programming

파이썬에서 뒤로 루프하는 법?

procodes 2020. 6. 4. 21:19
반응형

파이썬에서 뒤로 루프하는 법? [복제]


이 질문에는 이미 답변이 있습니다.

나는 다음과 같은 일에 대해 이야기하고있다 :

for(i=n; i>=1; --i) {
   //do something with i
}

파이썬에서 그렇게하는 몇 가지 방법을 생각할 수 있지만 ( ...을 range(1,n+1)사용하여 목록을 만들고 뒤집 음 ) 더 우아한 방법이 있는지 궁금합니다. 있습니까?while--i

편집 : 일부는 range가 목록을 반환하고 xrange는 반복자를 반환하므로 range () 대신 xrange ()를 사용하도록 제안했습니다. 그러나 파이썬 3에서 (사용하게 됨) range ()는 반복자를 반환하고 xrange는 존재하지 않습니다.


range()xrange()공정을 지정하는 세번째 파라미터 걸릴. 따라서 다음을 수행 할 수 있습니다.

range(10, 0, -1)

어느 것이

[10, 9, 8, 7, 6, 5, 4, 3, 2, 1] 

그러나 반복을 위해서는 실제로 xrange대신 사용해야 합니다. 그래서,

xrange(10, 0, -1)

파이썬 3 사용자를위한 참고 : 별도 없습니다 rangexrange파이썬 3의 기능을 바로이 range파이썬 2의 디자인을 따라하는 xrange.


for x in reversed(whatever):
    do_something()

이것은 기본적으로 xrange객체와 목록을 포함하여 정의 된 순서를 가진 모든 것에서 작동 합니다.


입력이 문자열 인 경우이 세 가지 솔루션 모두 동일한 결과를 제공합니다.

1.

def reverse(text):
    result = ""
    for i in range(len(text),0,-1):
        result += text[i-1]
    return (result)

2.

text[::-1]

삼.

"".join(reversed(text))

def reverse(text):
    reversed = ''
    for i in range(len(text)-1, -1, -1):
        reversed += text[i]
    return reversed

print("reverse({}): {}".format("abcd", reverse("abcd")))

사용하지 않고 문자열을 바꾸려면 reversed[::-1]같은 것을 시도 :

def reverse(text):
    # Container for reversed string
    txet=""

    # store the length of the string to be reversed
    # account for indexes starting at 0
    length = len(text)-1

    # loop through the string in reverse and append each character
    # deprecate the length index
    while length>=0:
        txet += "%s"%text[length]
        length-=1
    return txet

참고 URL : https://stackoverflow.com/questions/3476732/how-to-loop-backwards-in-python

반응형