@@ -18,7 +18,7 @@ msgstr ""
18
18
19
19
#: ../../howto/sorting.rst:4
20
20
msgid "Sorting Techniques"
21
- msgstr ""
21
+ msgstr "정렬 기법 "
22
22
23
23
#: ../../howto/sorting.rst
24
24
msgid "Author"
@@ -48,17 +48,18 @@ msgid "Sorting Basics"
48
48
msgstr "정렬 기초"
49
49
50
50
#: ../../howto/sorting.rst:19
51
- #, fuzzy
52
51
msgid ""
53
52
"A simple ascending sort is very easy: just call the :func:`sorted` "
54
53
"function. It returns a new sorted list:"
55
- msgstr "간단한 오름차순 정렬은 매우 쉽습니다; 그저 :func:`sorted` 함수를 호출하면 됩니다. 새로운 정렬된 리스트를 반환합니다:: "
54
+ msgstr "간단한 오름차순 정렬은 매우 쉽습니다; 그저 :func:`sorted` 함수를 호출하면 됩니다. 새로운 정렬된 리스트를 반환합니다:"
56
55
57
56
#: ../../howto/sorting.rst:22
58
57
msgid ""
59
58
">>> sorted([5, 2, 3, 1, 4])\n"
60
59
"[1, 2, 3, 4, 5]"
61
60
msgstr ""
61
+ ">>> sorted([5, 2, 3, 1, 4])\n"
62
+ "[1, 2, 3, 4, 5]"
62
63
63
64
#: ../../howto/sorting.rst:27
64
65
msgid ""
@@ -78,6 +79,10 @@ msgid ""
78
79
">>> a\n"
79
80
"[1, 2, 3, 4, 5]"
80
81
msgstr ""
82
+ ">>> a = [5, 2, 3, 1, 4]\n"
83
+ ">>> a.sort()\n"
84
+ ">>> a\n"
85
+ "[1, 2, 3, 4, 5]"
81
86
82
87
#: ../../howto/sorting.rst:39
83
88
msgid ""
@@ -93,6 +98,8 @@ msgid ""
93
98
">>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})\n"
94
99
"[1, 2, 3, 4, 5]"
95
100
msgstr ""
101
+ ">>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})\n"
102
+ "[1, 2, 3, 4, 5]"
96
103
97
104
#: ../../howto/sorting.rst:48
98
105
msgid "Key Functions"
@@ -117,6 +124,9 @@ msgid ""
117
124
"key=str.casefold)\n"
118
125
"['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']"
119
126
msgstr ""
127
+ ">>> sorted(\" This is a test string from Andrew\" .split(), "
128
+ "key=str.casefold)\n"
129
+ "['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']"
120
130
121
131
#: ../../howto/sorting.rst:61
122
132
msgid ""
@@ -145,6 +155,13 @@ msgid ""
145
155
"age\n"
146
156
"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
147
157
msgstr ""
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)]"
148
165
149
166
#: ../../howto/sorting.rst:79
150
167
msgid "The same technique works for objects with named attributes. For example:"
@@ -169,6 +186,22 @@ msgid ""
169
186
"age\n"
170
187
"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
171
188
msgstr ""
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)]"
172
205
173
206
#: ../../howto/sorting.rst:99
174
207
msgid ""
@@ -178,21 +211,19 @@ msgid ""
178
211
msgstr ""
179
212
180
213
#: ../../howto/sorting.rst:104
181
- #, fuzzy
182
214
msgid "Operator Module Functions and Partial Function Evaluation"
183
- msgstr "operator 모듈 함수 "
215
+ msgstr "operator 모듈 함수와 부분 함수 평가 "
184
216
185
217
#: ../../howto/sorting.rst:106
186
- #, fuzzy
187
218
msgid ""
188
219
"The :term:`key function` patterns shown above are very common, so Python "
189
220
"provides convenience functions to make accessor functions easier and "
190
221
"faster. The :mod:`operator` module has :func:`~operator.itemgetter`, "
191
222
":func:`~operator.attrgetter`, and a :func:`~operator.methodcaller` "
192
223
"function."
193
224
msgstr ""
194
- "위에서 보여준 키 함수 패턴은 매우 일반적이므로, 파이썬은 액세스 함수를 더 쉽고 빠르게 만드는 편리 함수를 제공합니다. "
195
- ":mod:`operator` 모듈에는 :func:`~operator.itemgetter`, "
225
+ "위에서 보여준 :term:` 키 함수 <key function>` 패턴은 매우 일반적이므로, 파이썬은 액세스 함수를 더 쉽고 빠르게 "
226
+ "만드는 편리 함수를 제공합니다. :mod:`operator` 모듈에는 :func:`~operator.itemgetter`, "
196
227
":func:`~operator.attrgetter` 및 :func:`~operator.methodcaller` 함수가 있습니다."
197
228
198
229
#: ../../howto/sorting.rst:111
@@ -209,6 +240,13 @@ msgid ""
209
240
">>> sorted(student_objects, key=attrgetter('age'))\n"
210
241
"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
211
242
msgstr ""
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)]"
212
250
213
251
#: ../../howto/sorting.rst:123
214
252
msgid ""
@@ -226,6 +264,11 @@ msgid ""
226
264
">>> sorted(student_objects, key=attrgetter('grade', 'age'))\n"
227
265
"[('john', 'A', 15), ('dave', 'B', 10), ('jane', 'B', 12)]"
228
266
msgstr ""
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)]"
229
272
230
273
#: ../../howto/sorting.rst:134
231
274
msgid ""
@@ -248,6 +291,16 @@ msgid ""
248
291
">>> sorted(names, key=partial(normalize, 'NFC'))\n"
249
292
"['Abe', 'Eloise', 'Nubia', 'Núñez', 'Zeke', 'Zoë', 'Åbjørn', 'Élana']"
250
293
msgstr ""
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']"
251
304
252
305
#: ../../howto/sorting.rst:153
253
306
msgid "Ascending and Descending"
@@ -270,6 +323,11 @@ msgid ""
270
323
">>> sorted(student_objects, key=attrgetter('age'), reverse=True)\n"
271
324
"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]"
272
325
msgstr ""
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)]"
273
331
274
332
#: ../../howto/sorting.rst:168
275
333
msgid "Sort Stability and Complex Sorts"
@@ -292,6 +350,9 @@ msgid ""
292
350
">>> sorted(data, key=itemgetter(0))\n"
293
351
"[('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]"
294
352
msgstr ""
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)]"
295
356
296
357
#: ../../howto/sorting.rst:180
297
358
msgid ""
@@ -320,6 +381,11 @@ msgid ""
320
381
"primary key, descending\n"
321
382
"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
322
383
msgstr ""
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)]"
323
389
324
390
#: ../../howto/sorting.rst:193
325
391
msgid ""
@@ -337,6 +403,13 @@ msgid ""
337
403
">>> multisort(list(student_objects), (('grade', True), ('age', False)))\n"
338
404
"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
339
405
msgstr ""
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)]"
340
413
341
414
#: ../../howto/sorting.rst:206
342
415
msgid ""
@@ -348,9 +421,8 @@ msgstr ""
348
421
"집합에 이미 존재하는 순서를 활용할 수 있으므로 효율적으로 여러 번의 정렬을 수행합니다."
349
422
350
423
#: ../../howto/sorting.rst:211
351
- #, fuzzy
352
424
msgid "Decorate-Sort-Undecorate"
353
- msgstr "장식-정렬-복원을 사용하는 낡은 방법 "
425
+ msgstr "장식-정렬-복원 "
354
426
355
427
#: ../../howto/sorting.rst:213
356
428
msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:"
@@ -385,6 +457,11 @@ msgid ""
385
457
"undecorate\n"
386
458
"[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]"
387
459
msgstr ""
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)]"
388
465
389
466
#: ../../howto/sorting.rst:231
390
467
msgid ""
@@ -434,9 +511,8 @@ msgid ""
434
511
msgstr "이제 파이썬 정렬이 키 함수를 제공하기 때문에, 이 기법은 자주 필요하지 않습니다."
435
512
436
513
#: ../../howto/sorting.rst:253
437
- #, fuzzy
438
514
msgid "Comparison Functions"
439
- msgstr "operator 모듈 함수"
515
+ msgstr "비교 함수"
440
516
441
517
#: ../../howto/sorting.rst:255
442
518
msgid ""
@@ -471,23 +547,22 @@ msgstr ""
471
547
472
548
#: ../../howto/sorting.rst:273
473
549
msgid "sorted(words, key=cmp_to_key(strcoll)) # locale-aware sort order"
474
- msgstr ""
550
+ msgstr "sorted(words, key=cmp_to_key(strcoll)) # 로케일 인식 정렬 순서 "
475
551
476
552
#: ../../howto/sorting.rst:276
477
- #, fuzzy
478
553
msgid "Odds and Ends"
479
554
msgstr "잡동사니"
480
555
481
556
#: ../../howto/sorting.rst:278
482
- #, fuzzy
483
557
msgid ""
484
558
"For locale aware sorting, use :func:`locale.strxfrm` for a key function "
485
559
"or :func:`locale.strcoll` for a comparison function. This is necessary "
486
560
"because \" alphabetical\" sort orderings can vary across cultures even if "
487
561
"the underlying alphabet is the same."
488
562
msgstr ""
489
563
"로케일 인식 정렬의 경우, 키 함수로는 :func:`locale.strxfrm`\\ 를, 비교 함수로는 "
490
- ":func:`locale.strcoll`\\ 을 사용하십시오."
564
+ ":func:`locale.strcoll`\\ 을 사용하십시오. 이는 하부 알파벳이 같더라도 문화권마다 \" 알파벳순\" 정렬 순서가 "
565
+ "다를 수 있기 때문에 필요합니다."
491
566
492
567
#: ../../howto/sorting.rst:283
493
568
msgid ""
@@ -509,23 +584,32 @@ msgid ""
509
584
">>> standard_way\n"
510
585
"[('red', 1), ('red', 2), ('blue', 1), ('blue', 2)]"
511
586
msgstr ""
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)]"
512
594
513
595
#: ../../howto/sorting.rst:297
514
- #, fuzzy
515
596
msgid ""
516
597
"The sort routines use ``<`` when making comparisons between two objects. "
517
598
"So, it is easy to add a standard sort order to a class by defining an "
518
599
":meth:`~object.__lt__` method:"
519
600
msgstr ""
520
- "정렬 루틴은 두 객체를 비교할 때 :meth:`__lt__` \\ 를 사용하도록 보장됩니다 . 따라서 :meth:`__lt__` 메서드를"
521
- " 정의하여, 표준 정렬 순서를 클래스에 추가하기는 쉽습니다: :"
601
+ "정렬 루틴은 두 객체를 비교할 때 ``<`` \\ 를 사용합니다 . 따라서 :meth:`~object. __lt__` 메서드를 정의하여, "
602
+ "표준 정렬 순서를 클래스에 추가하기는 쉽습니다:"
522
603
523
604
#: ../../howto/sorting.rst:301
524
605
msgid ""
525
606
">>> Student.__lt__ = lambda self, other: self.age < other.age\n"
526
607
">>> sorted(student_objects)\n"
527
608
"[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]"
528
609
msgstr ""
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)]"
529
613
530
614
#: ../../howto/sorting.rst:307
531
615
msgid ""
@@ -555,6 +639,10 @@ msgid ""
555
639
">>> sorted(students, key=newgrades.__getitem__)\n"
556
640
"['jane', 'dave', 'john']"
557
641
msgstr ""
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']"
558
646
559
647
#: ../../howto/sorting.rst:327
560
648
msgid "Partial Sorts"
@@ -591,9 +679,6 @@ msgid ""
591
679
"queues which are commonly used for task scheduling."
592
680
msgstr ""
593
681
594
- #~ msgid "Sorting HOW TO"
595
- #~ msgstr "정렬 HOW TO"
596
-
597
682
#~ msgid "Release"
598
683
#~ msgstr "배포"
599
684
0 commit comments