Python/기초문법

[기초문법] reverse(), reversed() 함수 비교

gangee 2023. 1. 25. 14:39

목차

    728x90
    반응형

    1. reverse() : list 자료형의 함수

    2. reversed() : python의 내장 함수

    reverse()

    • list 자료형의 함수이기에 list 타입에서만 사용이 가능하다.
    • list 안에 있는 요소를 역순으로 다시 저장시켜 놓는 역할
    • list 안의 요소가 역순으로 정렬된 새로운 list를 반환하는 것이 아닌 해당 함수를 사용한 원본 list의 요소를 역순으로 정렬한다.
    li = [1, 2, 3, 4, 5]
    tu = (1, 2, 3, 4, 5)
    
    li.reverse()
    tu.reverse()
    
    ===============================
    
    AttributeError: 'tuple' object has no attribute 'reverse'
    • 위 코드를 실행하였을 때 tuple에서 오류가 발생한다.
    • reverse()는 list자료형의 함수이기 때문에 tuple에서 오류가 발생한 것이다.
    print(li)
    
    ================================
    
    [5, 4, 3, 2, 1]
    • print로 리스트를 출력하면 역순으로 정렬된 리스트가 출력된다.

    reversed()

    • iterable 객체의 요소를 역순으로 하여 반환한다.
    • 사용한 객체를 변경하지 않고 요소가 역순으로 정렬된 reversed 객체를 반환한다.
    • reversed 객체를 반환하기 때문에 list나 tuple 등으로 변환하여 사용이 가능하다.
    li = [1, 2, 3, 4, 5]
    tu = (1, 2, 3, 4, 5)
    
    print(reversed(li))
    print(reversed(tu))
    
    ==============================
    
    <list_reverseiterator at 0x232bb1fcb50>
    <reversed at 0x232bb1fc700>
    • sequence타입인 list와 tuple, str을 반환할 수 있다.
    • dictionary는 sequence타입이 아니므로 반환할 수 없다.
    print(list(reversed(li)))
    print(tuple(reversed(tu)))
    
    ================================
    
    [5, 4, 3, 2, 1]
    (5, 4, 3, 2, 1)
    • 변환된 값을 출력하고 싶을 때는 위와 같은 방법을 사용하여야한다.
    728x90
    반응형