@@ -18,7 +18,7 @@ msgstr ""
1818
1919#: ../../howto/sorting.rst:4
2020msgid "Sorting Techniques"
21- msgstr ""
21+ msgstr "정렬 기법 "
2222
2323#: ../../howto/sorting.rst
2424msgid "Author"
@@ -48,17 +48,18 @@ msgid "Sorting Basics"
4848msgstr "정렬 기초"
4949
5050#: ../../howto/sorting.rst:19
51- #, fuzzy
5251msgid ""
5352"A simple ascending sort is very easy: just call the :func:`sorted` "
5453"function. It returns a new sorted list:"
55- msgstr "간단한 오름차순 정렬은 매우 쉽습니다; 그저 :func:`sorted` 함수를 호출하면 됩니다. 새로운 정렬된 리스트를 반환합니다:: "
54+ msgstr "간단한 오름차순 정렬은 매우 쉽습니다; 그저 :func:`sorted` 함수를 호출하면 됩니다. 새로운 정렬된 리스트를 반환합니다:"
5655
5756#: ../../howto/sorting.rst:22
5857msgid ""
5958">>> sorted([5, 2, 3, 1, 4])\n"
6059"[1, 2, 3, 4, 5]"
6160msgstr ""
61+ ">>> sorted([5, 2, 3, 1, 4])\n"
62+ "[1, 2, 3, 4, 5]"
6263
6364#: ../../howto/sorting.rst:27
6465msgid ""
@@ -78,6 +79,10 @@ msgid ""
7879">>> a\n"
7980"[1, 2, 3, 4, 5]"
8081msgstr ""
82+ ">>> a = [5, 2, 3, 1, 4]\n"
83+ ">>> a.sort()\n"
84+ ">>> a\n"
85+ "[1, 2, 3, 4, 5]"
8186
8287#: ../../howto/sorting.rst:39
8388msgid ""
@@ -93,6 +98,8 @@ msgid ""
9398">>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})\n"
9499"[1, 2, 3, 4, 5]"
95100msgstr ""
101+ ">>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})\n"
102+ "[1, 2, 3, 4, 5]"
96103
97104#: ../../howto/sorting.rst:48
98105msgid "Key Functions"
@@ -117,6 +124,9 @@ msgid ""
117124"key=str.casefold)\n"
118125"['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']"
119126msgstr ""
127+ ">>> sorted(\" This is a test string from Andrew\" .split(), "
128+ "key=str.casefold)\n"
129+ "['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']"
120130
121131#: ../../howto/sorting.rst:61
122132msgid ""
@@ -145,6 +155,13 @@ msgid ""
145155"age\n"
146156"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
147157msgstr ""
158+ ">>> student_tuples = [\n"
159+ "... ('john', 'A', 15),\n"
160+ "... ('jane', 'B', 12),\n"
161+ "... ('dave', 'B', 10),\n"
162+ "... ]\n"
163+ ">>> sorted(student_tuples, key=lambda student: student[2]) # 나이로 정렬합니다\n"
164+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
148165
149166#: ../../howto/sorting.rst:79
150167msgid "The same technique works for objects with named attributes. For example:"
@@ -169,6 +186,22 @@ msgid ""
169186"age\n"
170187"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
171188msgstr ""
189+ ">>> class Student:\n"
190+ "... def __init__(self, name, grade, age):\n"
191+ "... self.name = name\n"
192+ "... self.grade = grade\n"
193+ "... self.age = age\n"
194+ "... def __repr__(self):\n"
195+ "... return repr((self.name, self.grade, self.age))\n"
196+ "\n"
197+ ">>> student_objects = [\n"
198+ "... Student('john', 'A', 15),\n"
199+ "... Student('jane', 'B', 12),\n"
200+ "... Student('dave', 'B', 10),\n"
201+ "... ]\n"
202+ ">>> sorted(student_objects, key=lambda student: student.age) # 나이로 "
203+ "정렬합니다\n"
204+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
172205
173206#: ../../howto/sorting.rst:99
174207msgid ""
@@ -178,21 +211,19 @@ msgid ""
178211msgstr ""
179212
180213#: ../../howto/sorting.rst:104
181- #, fuzzy
182214msgid "Operator Module Functions and Partial Function Evaluation"
183- msgstr "operator 모듈 함수 "
215+ msgstr "operator 모듈 함수와 부분 함수 평가 "
184216
185217#: ../../howto/sorting.rst:106
186- #, fuzzy
187218msgid ""
188219"The :term:`key function` patterns shown above are very common, so Python "
189220"provides convenience functions to make accessor functions easier and "
190221"faster. The :mod:`operator` module has :func:`~operator.itemgetter`, "
191222":func:`~operator.attrgetter`, and a :func:`~operator.methodcaller` "
192223"function."
193224msgstr ""
194- "위에서 보여준 키 함수 패턴은 매우 일반적이므로, 파이썬은 액세스 함수를 더 쉽고 빠르게 만드는 편리 함수를 제공합니다. "
195- ":mod:`operator` 모듈에는 :func:`~operator.itemgetter`, "
225+ "위에서 보여준 :term:` 키 함수 <key function>` 패턴은 매우 일반적이므로, 파이썬은 액세스 함수를 더 쉽고 빠르게 "
226+ "만드는 편리 함수를 제공합니다. :mod:`operator` 모듈에는 :func:`~operator.itemgetter`, "
196227":func:`~operator.attrgetter` 및 :func:`~operator.methodcaller` 함수가 있습니다."
197228
198229#: ../../howto/sorting.rst:111
@@ -209,6 +240,13 @@ msgid ""
209240">>> sorted(student_objects, key=attrgetter('age'))\n"
210241"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
211242msgstr ""
243+ ">>> from operator import itemgetter, attrgetter\n"
244+ "\n"
245+ ">>> sorted(student_tuples, key=itemgetter(2))\n"
246+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]\n"
247+ "\n"
248+ ">>> sorted(student_objects, key=attrgetter('age'))\n"
249+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
212250
213251#: ../../howto/sorting.rst:123
214252msgid ""
@@ -226,6 +264,11 @@ msgid ""
226264">>> sorted(student_objects, key=attrgetter('grade', 'age'))\n"
227265"[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]"
228266msgstr ""
267+ ">>> sorted(student_tuples, key=itemgetter(1,2))\n"
268+ "[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]\n"
269+ "\n"
270+ ">>> sorted(student_objects, key=attrgetter('grade', 'age'))\n"
271+ "[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]"
229272
230273#: ../../howto/sorting.rst:134
231274msgid ""
@@ -248,6 +291,16 @@ msgid ""
248291">>> sorted(names, key=partial(normalize, 'NFC'))\n"
249292"['Abe', 'Eloise', 'Nubia', 'Núñez', 'Zeke', 'Zoë', 'Åbjørn', 'Élana']"
250293msgstr ""
294+ ">>> from functools import partial\n"
295+ ">>> from unicodedata import normalize\n"
296+ "\n"
297+ ">>> names = 'Zoë Åbjørn Núñez Élana Zeke Abe Nubia Eloise'.split()\n"
298+ "\n"
299+ ">>> sorted(names, key=partial(normalize, 'NFD'))\n"
300+ "['Abe', 'Åbjørn', 'Eloise', 'Élana', 'Nubia', 'Núñez', 'Zeke', 'Zoë']\n"
301+ "\n"
302+ ">>> sorted(names, key=partial(normalize, 'NFC'))\n"
303+ "['Abe', 'Eloise', 'Nubia', 'Núñez', 'Zeke', 'Zoë', 'Åbjørn', 'Élana']"
251304
252305#: ../../howto/sorting.rst:153
253306msgid "Ascending and Descending"
@@ -270,6 +323,11 @@ msgid ""
270323">>> sorted(student_objects, key=attrgetter('age'), reverse=True)\n"
271324"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]"
272325msgstr ""
326+ ">>> sorted(student_tuples, key=itemgetter(2), reverse=True)\n"
327+ "[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]\n"
328+ "\n"
329+ ">>> sorted(student_objects, key=attrgetter('age'), reverse=True)\n"
330+ "[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]"
273331
274332#: ../../howto/sorting.rst:168
275333msgid "Sort Stability and Complex Sorts"
@@ -292,6 +350,9 @@ msgid ""
292350">>> sorted(data, key=itemgetter(0))\n"
293351"[('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]"
294352msgstr ""
353+ ">>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]\n"
354+ ">>> sorted(data, key=itemgetter(0))\n"
355+ "[('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]"
295356
296357#: ../../howto/sorting.rst:180
297358msgid ""
@@ -320,6 +381,11 @@ msgid ""
320381"primary key, descending\n"
321382"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
322383msgstr ""
384+ ">>> s = sorted(student_objects, key=attrgetter('age')) # 두 번째 키로 "
385+ "정렬합니다\n"
386+ ">>> sorted(s, key=attrgetter('grade'), reverse=True) # 이제 첫 번째 키로 "
387+ "내림차순 정렬합니다\n"
388+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
323389
324390#: ../../howto/sorting.rst:193
325391msgid ""
@@ -337,6 +403,13 @@ msgid ""
337403">>> multisort(list(student_objects), (('grade', True), ('age', False)))\n"
338404"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
339405msgstr ""
406+ ">>> def multisort(xs, specs):\n"
407+ "... for key, reverse in reversed(specs):\n"
408+ "... xs.sort(key=attrgetter(key), reverse=reverse)\n"
409+ "... return xs\n"
410+ "\n"
411+ ">>> multisort(list(student_objects), (('grade', True), ('age', False)))\n"
412+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
340413
341414#: ../../howto/sorting.rst:206
342415msgid ""
@@ -348,9 +421,8 @@ msgstr ""
348421"집합에 이미 존재하는 순서를 활용할 수 있으므로 효율적으로 여러 번의 정렬을 수행합니다."
349422
350423#: ../../howto/sorting.rst:211
351- #, fuzzy
352424msgid "Decorate-Sort-Undecorate"
353- msgstr "장식-정렬-복원을 사용하는 낡은 방법 "
425+ msgstr "장식-정렬-복원 "
354426
355427#: ../../howto/sorting.rst:213
356428msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:"
@@ -385,6 +457,11 @@ msgid ""
385457"undecorate\n"
386458"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]"
387459msgstr ""
460+ ">>> decorated = [(student.grade, i, student) for i, student in "
461+ "enumerate(student_objects)]\n"
462+ ">>> decorated.sort()\n"
463+ ">>> [student for grade, i, student in decorated] # 복원\n"
464+ "[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]"
388465
389466#: ../../howto/sorting.rst:231
390467msgid ""
@@ -434,9 +511,8 @@ msgid ""
434511msgstr "이제 파이썬 정렬이 키 함수를 제공하기 때문에, 이 기법은 자주 필요하지 않습니다."
435512
436513#: ../../howto/sorting.rst:253
437- #, fuzzy
438514msgid "Comparison Functions"
439- msgstr "operator 모듈 함수"
515+ msgstr "비교 함수"
440516
441517#: ../../howto/sorting.rst:255
442518msgid ""
@@ -471,23 +547,22 @@ msgstr ""
471547
472548#: ../../howto/sorting.rst:273
473549msgid "sorted(words, key=cmp_to_key(strcoll)) # locale-aware sort order"
474- msgstr ""
550+ msgstr "sorted(words, key=cmp_to_key(strcoll)) # 로케일 인식 정렬 순서 "
475551
476552#: ../../howto/sorting.rst:276
477- #, fuzzy
478553msgid "Odds and Ends"
479554msgstr "잡동사니"
480555
481556#: ../../howto/sorting.rst:278
482- #, fuzzy
483557msgid ""
484558"For locale aware sorting, use :func:`locale.strxfrm` for a key function "
485559"or :func:`locale.strcoll` for a comparison function. This is necessary "
486560"because \" alphabetical\" sort orderings can vary across cultures even if "
487561"the underlying alphabet is the same."
488562msgstr ""
489563"로케일 인식 정렬의 경우, 키 함수로는 :func:`locale.strxfrm`\\ 를, 비교 함수로는 "
490- ":func:`locale.strcoll`\\ 을 사용하십시오."
564+ ":func:`locale.strcoll`\\ 을 사용하십시오. 이는 하부 알파벳이 같더라도 문화권마다 \" 알파벳순\" 정렬 순서가 "
565+ "다를 수 있기 때문에 필요합니다."
491566
492567#: ../../howto/sorting.rst:283
493568msgid ""
@@ -509,23 +584,32 @@ msgid ""
509584">>> standard_way\n"
510585"[('red', 1), ('red', 2), ('blue', 1), ('blue', 2)]"
511586msgstr ""
587+ ">>> data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]\n"
588+ ">>> standard_way = sorted(data, key=itemgetter(0), reverse=True)\n"
589+ ">>> double_reversed = list(reversed(sorted(reversed(data), "
590+ "key=itemgetter(0))))\n"
591+ ">>> assert standard_way == double_reversed\n"
592+ ">>> standard_way\n"
593+ "[('red', 1), ('red', 2), ('blue', 1), ('blue', 2)]"
512594
513595#: ../../howto/sorting.rst:297
514- #, fuzzy
515596msgid ""
516597"The sort routines use ``<`` when making comparisons between two objects. "
517598"So, it is easy to add a standard sort order to a class by defining an "
518599":meth:`~object.__lt__` method:"
519600msgstr ""
520- "정렬 루틴은 두 객체를 비교할 때 :meth:`__lt__` \\ 를 사용하도록 보장됩니다 . 따라서 :meth:`__lt__` 메서드를"
521- " 정의하여, 표준 정렬 순서를 클래스에 추가하기는 쉽습니다: :"
601+ "정렬 루틴은 두 객체를 비교할 때 ``<`` \\ 를 사용합니다 . 따라서 :meth:`~object. __lt__` 메서드를 정의하여, "
602+ "표준 정렬 순서를 클래스에 추가하기는 쉽습니다:"
522603
523604#: ../../howto/sorting.rst:301
524605msgid ""
525606">>> Student.__lt__ = lambda self, other: self.age < other.age\n"
526607">>> sorted(student_objects)\n"
527608"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
528609msgstr ""
610+ ">>> Student.__lt__ = lambda self, other: self.age < other.age\n"
611+ ">>> sorted(student_objects)\n"
612+ "[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
529613
530614#: ../../howto/sorting.rst:307
531615msgid ""
@@ -555,6 +639,10 @@ msgid ""
555639">>> sorted(students, key=newgrades.__getitem__)\n"
556640"['jane', 'dave', 'john']"
557641msgstr ""
642+ ">>> students = ['dave', 'john', 'jane']\n"
643+ ">>> newgrades = {'john': 'F', 'jane':'A', 'dave': 'C'}\n"
644+ ">>> sorted(students, key=newgrades.__getitem__)\n"
645+ "['jane', 'dave', 'john']"
558646
559647#: ../../howto/sorting.rst:327
560648msgid "Partial Sorts"
@@ -591,9 +679,6 @@ msgid ""
591679"queues which are commonly used for task scheduling."
592680msgstr ""
593681
594- #~ msgid "Sorting HOW TO"
595- #~ msgstr "정렬 HOW TO"
596-
597682#~ msgid "Release"
598683#~ msgstr "배포"
599684
0 commit comments