글 작성자: 택시 운전사
반응형

1. Key 값을 정렬

PythonDictionary 자료형은 { key: value } 쌍으로 값이 들어가 있다. DictionaryDefault(기본) 정렬이 Key값을 기준으로 오름차순으로 Key 값을 정렬하는 것이다.

fruits \= { 'apple': 2, 'banana' : 1, 'melon' : 0, 'pear' : 2, 'plum' : 1}
sorted(fruits)
# \['apple', 'banana', 'melon', 'pear', 'plum'\]
sorted(fruits.keys())
# \['apple', 'banana', 'melon', 'pear', 'plum'\]
# sorted(frueits)는 sorted(fruits.keys())와 같다.

만약 값(value)를 기준으로 Key 값을 정렬하고 싶다면, sortedkey 매개 변수에 lamda 함수를 사용하여 value를 기준으로 정렬하라는 코드를 넣으면 된다.

sorted(fruits, key\=lambda k : fruits\[k\])
# \['melon', 'plum', 'banana', 'pear', 'apple'\]
sorted(fruits, key\=lambda k : fruits\[k\], reverse\=True)
# \['pear', 'apple', 'plum', 'banana', 'melon'\]

2. dict.items()를 정렬

dictionary에서 제공되는 items() method를 사용하면, tuple(튜플) 자료형으로 이루어진 목록을 만들어 준다. 이를 정렬하면 역시 dictionary(사전)key값으로 정렬한 것과 같이 된다.

fruits.items()
# dict\_items(\[('plum', 1), ('pear', 2), ('banana', 1), ('apple', 2), ('melon', 0)\])
sorted(fruits.items())
# \[('apple', 2), ('banana', 1), ('melon', 0), ('pear', 2), ('plum', 1)\]

value로 정렬하려면

sorted(fruits.items(), key\=lambda t : t\[1\])
\# \[('melon', 0), ('plum', 1), ('banana', 1), ('pear', 2), ('apple', 2)\]

위의 lambda 함수에 tt[1]이 사용되었는 데, 여기서 tfruits.items()에서 얻은 목록에 들어 있는 항목을 의미하며, t('key', value) tuple(튜플)로 정의된다. 따라서, t[1]value를 의미하고 이는 정렬하는 기준을 value로 하라는 의미이다.

반응형