Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

이것저것

정렬 itemgetter / attregetter 본문

Language/Python

정렬 itemgetter / attregetter

olivia-com 2020. 12. 11. 14:16

operator 모듈 함수

 

1. itemgetter()

Name_tuples = [
    ('olivia', 21,90),
    ('chris', 24,85),
    ('jane', 20,88)
]

from operator import itemgetter
print(sorted(Name_tuples, key = itemgetter(1))) # age 오름차순 정렬 

>>>
[('jane', 20, 88), ('olivia', 21, 90), ('chris', 24, 85)]

 

2. attrgetter()

class Name:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def printInfo(self):
        return "{} {} {}".format(self.name, self.age, self.score)


Name_tuples = [
    Name('olivia', 21,90),
    Name('chris', 24,85),
    Name('jane', 20,88)
]

from operator import attrgetter
for final in sorted(Name_tuples, key = attrgetter('age')): # age 오름차순 정렬
    print(final.printInfo())

>>>
jane 20 88
olivia 21 90
chris 24 85

 

3. 다중 정렬

Name_tuples = [
    ('olivia', 21,90),
    ('chris', 24,85),
    ('jane', 20,88)
]

from operator import itemgetter
print(sorted(Name_tuples, key = itemgetter(1,0))) # age, name 순 오름차순 정렬 
class Name:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def printInfo(self):
        return "{} {} {}".format(self.name, self.age, self.score)


Name_tuples = [
    Name('olivia', 21,90),
    Name('chris', 24,85),
    Name('jane', 20,88)
]

from operator import attrgetter
for final in sorted(Name_tuples, key = attrgetter('age', 'score')): # age,score순 오름차순 정렬
    print(final.printInfo())

4. 내림차순

Name_tuples = [
    ('olivia', 21,90),
    ('chris', 24,85),
    ('jane', 20,88)
]

from operator import itemgetter
print(sorted(Name_tuples, key = itemgetter(1), reverse = True)) # age 오름차순 정렬 

>>>
[('chris', 24, 85), ('olivia', 21, 90), ('jane', 20, 88)]
class Name:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def printInfo(self):
        return "{} {} {}".format(self.name, self.age, self.score)


Name_tuples = [
    Name('olivia', 21,90),
    Name('chris', 24,85),
    Name('jane', 20,88)
]

from operator import attrgetter
for final in sorted(Name_tuples, key = attrgetter('age'), reverse = True): # age,score순 오름차순 정렬
    print(final.printInfo())

>>>
chris 24 85
olivia 21 90
jane 20 88

'Language > Python' 카테고리의 다른 글

생성자(Constructor)  (0) 2020.12.10
python swea 2005 파스칼의 삼각형  (0) 2020.11.25
python swea 2056 연월일 달력  (0) 2020.11.25
python swea 2068 최대수 구하기  (0) 2020.11.25
python swea 2070 큰 놈, 작은 놈, 같은 놈  (0) 2020.11.25