기계는 거짓말하지 않는다

Python operator itemgetter, attrgetter 본문

Python

Python operator itemgetter, attrgetter

KillinTime 2023. 4. 15. 16:32

Python에서 정렬 함수를 사용할 때 itemgetter를 이용하여 정렬 key 기준을 쉽게 가져올 수 있다.

class 인스턴수 변수를 기준으로 key 값을 가져오려면 attrgetter를 사용한다.

lambda로 대체 가능하다.

from operator import itemgetter

# list itemgetter
temp_list = [(10, "C"), (20, "A"), (30, "B")]
result = sorted(temp_list, key=itemgetter(0))
print(result)

# dict itemgetter
temp_dict = [{"number": 10, "string": "C"}, {"number": 20, "string": "A"}, {"number": 30, "string":"B"}]
result = sorted(temp_dict, key=itemgetter("string"))
print(result)

# class attrgetter
from operator import attrgetter
class TempClass():
    def __init__(self, number: int, string: str):
        self.number = number
        self.string = string
        
    def __repr__(self):
        return "(" + str(self.number) + ", " + self.string + ")" 
        
temp_obj_list = [TempClass(10, "C"), TempClass(20, "A"), TempClass(30, "B")]
result = sorted(temp_obj_list, key=attrgetter("number"))
print(result)

Comments