ããŒã1 | ããŒã2 | ããŒã3 | ããŒã4 |
---|
ãã®èšäºã§ã¯ãæšæºã³ã¬ã¯ã·ã§ã³ïŒã³ã¬ã¯ã·ã§ã³ã¢ãžã¥ãŒã«ã¯èæ ®ãããŠããŸããïŒPythonã§ã®äœæ¥ã®äžè¬ååãåŒãç¶ã調æ»ããŸãã
誰ã®ããã«ïŒ Pythonãå匷ããŠããŠãã³ã¬ã¯ã·ã§ã³ã®åæã¢ã€ãã¢ããã§ã«æã£ãŠããã圌ããšååããäœç³»åããŠç¥èãæ·±ããã人ã®ããã«ãããããå®å šãªã€ã¡ãŒãžã«å ¥ããŠãã ããã
ç®æ¬¡ïŒ
- 玢åŒä»ã
- ã¹ã©ã€ã¹
- ä»åã
1.ã€ã³ããã¯ã¹ä»ã
1.1ã€ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³
ãªã¹ãïŒãªã¹ãïŒãã¿ãã«ïŒã¿ãã«ïŒãã¹ããªã³ã°ïŒã¹ããªã³ã°ïŒ-ã€ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ïŒã·ãŒã±ã³ã¹ãšãåŒã°ããŸãïŒãæ€èšããŠãã ããã
ã€ã³ããã¯ã¹ä»ããšã¯ãã³ã¬ã¯ã·ã§ã³ã®èŠçŽ ãç¹å®ã®é åºã§é 眮ãããããšãæå³ããåèŠçŽ ã¯ã0ïŒã€ãŸããè¡ã®æåã®ã¢ã€ãã ã®ã€ã³ããã¯ã¹ã¯1ã§ã¯ãªã0ïŒããã³ã¬ã¯ã·ã§ã³ã®é·ããã1ã€å°ããã€ã³ããã¯ã¹ïŒlenïŒmycollection ïŒ-1ïŒã
1.2ã€ã³ããã¯ã¹ã«ããå€ã®ååŸ
ãã¹ãŠã®ã€ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ã«ã€ããŠãè§ãã£ãå ã®ã€ã³ããã¯ã¹ã«ãã£ãŠèŠçŽ ã®å€ãååŸã§ããŸãã ããã«ãè² ã®ã€ã³ããã¯ã¹ãæå®ã§ããŸããããã¯ãéã®é åºã§ã«ãŠã³ãããããšã§ãæåŸããèŠçŽ ãèŠã€ããããšãæå³ããŸãã
è² ã®ã€ã³ããã¯ã¹ãæå®ããå ŽåãæåŸã®èŠçŽ ã®ã€ã³ããã¯ã¹ã¯-1ãæåŸãã2çªç®ã®ã€ã³ããã¯ã¹ãç¶ããã€ã³ããã¯ã¹ãè² ã®ç¬Šå·ãæã€ã³ã¬ã¯ã·ã§ã³ã®é·ãã®å€ã«çããæåã®èŠçŽ ãã€ãŸãïŒ-lenïŒmycollectionïŒïŒã«ãªããŸãã
èŠçŽ | a | b | c | d | e |
---|---|---|---|---|---|
ã€ã³ããã¯ã¹ | 0ïŒ-5ïŒ | 1ïŒ-4ïŒ | 2ïŒ-3ïŒ | 3ïŒ-2ïŒ | 4ïŒ-1ïŒ |
my_str = "abcde" print(my_str[0]) # a - print(my_str[-1]) # e - print(my_str[len(my_str)-1]) # e - print(my_str[-2]) # d -
以äžã®äŸã®ãªã¹ãã®ãªã¹ãã®ããã«ãã³ã¬ã¯ã·ã§ã³ã«ã¯ããã€ãã®ã¬ãã«ã®ãã¹ããå«ããããšãã§ããŸãã ããã«æ·±ãããã«ã¯ãè§ã«ãã³ã®2çªç®ã®ãã¢ãªã©ãé 眮ããŸãã
my_2lvl_list = [[1, 2, 3], ['a', 'b', 'c']] print(my_2lvl_list[0]) # [1, 2, 3] - â print(my_2lvl_list[0][0]) # 1 â print(my_2lvl_list[1][-1]) # â
1.3ã€ã³ããã¯ã¹ã«ãããªã¹ãã¢ã€ãã ã®å€æŽ
ã¿ãã«ãšè¡ã«ã¯äžå€ã®ã³ã¬ã¯ã·ã§ã³ããããããã€ã³ããã¯ã¹ã«ãã£ãŠèŠçŽ ã®ã¿ãååŸã§ããå€æŽã¯ã§ããŸããã
my_tuple = (1, 2, 3, 4, 5) print(my_tuple[0]) # 1 my_tuple[0] = 100 # TypeError: 'tuple' object does not support item assignment
ãããããªã¹ãã®å Žåãã€ã³ããã¯ã¹ã«ããèŠçŽ ã®ååŸãåŒã®å·ŠåŽã«ãããä»£å ¥æŒç®å=ãæ¥ããšããã®ã€ã³ããã¯ã¹ãæã€èŠçŽ ã«æ°ããå€ãèšå®ããŸãã
my_list = [1, 2, 3, [4, 5]] my_list[0] = 10 my_list[-1][0] = 40 print(my_list) # [10, 2, 3, [40, 5]]
UPDïŒæ³šïŒãã®ãããªå²ãåœãŠã®å ŽåãèŠçŽ ã¯ãªã¹ãã«æ¢ã«ååšããŠããå¿ èŠããããããååšããªãã€ã³ããã¯ã¹ã«èŠçŽ ãè¿œå ããããšã¯ã§ããŸããã
my_list = [1, 2, 3, 4, 5] my_list[5] = 6 # IndexError: list assignment index out of range
2ã¹ã©ã€ã¹
2.1ã¹ã©ã€ã¹ã®æ§æ
ãã®ãããªã¿ã¹ã¯ã§ã¯ã1ã€ã®èŠçŽ ã§ã¯ãªããç¹å®ã®åçŽãªã«ãŒã«ïŒããšãã°ãæåã®5ãŸãã¯æåŸã®3ããŸãã¯2ã€ããã®èŠçŽ ïŒã«ãã£ãŠå¶éãããã»ãããååŸããå¿ èŠãéåžžã«é »ç¹ã«ãããŸããã«ãŒããå埩ãã代ããã«ãããããã¹ã©ã€ã¹ïŒã¹ã©ã€ã¹ãã¹ã©ã€ã¹ïŒã
ã€ã³ããã¯ã¹ãŸãã¯ã¹ã©ã€ã¹ïŒã¹ã©ã€ã¹ïŒã§èŠçŽ ãååŸããããšã¯ãå ã®ã³ã¬ã¯ã·ã§ã³ãå€æŽããªãã®ã奜ãã§ã¯ãªãããšãèŠããŠããå¿ èŠããããŸããå°æ¥ã®äœ¿çšïŒããšãã°ãå¥ã®ã³ã¬ã¯ã·ã§ã³ãžã®è¿œå ãå°å·ãèšç®ïŒ ã³ã¬ã¯ã·ã§ã³èªäœã¯å€æŽãããªããããããã¯å¯å€ïŒãªã¹ãïŒã·ãŒã±ã³ã¹ãšäžå€ïŒã¹ããªã³ã°ãã¿ãã«ïŒã·ãŒã±ã³ã¹ã®äž¡æ¹ã«é©çšãããŸãã
ã¹ã©ã€ã¹ã®æ§æã¯ã€ã³ããã¯ã¹äœæã®æ§æãšäŒŒãŠããŸãããè§æ¬åŒ§ã§å²ãŸããåäžã®å€ã§ã¯ãªãã2ã3ãã³ãã³ã§ç€ºãããŸãã
my_collection[start:stop:step] # ,
ã¹ã©ã€ã¹æ©èœïŒ
- startãšstopã®è² ã®å€ã¯ãã³ã¬ã¯ã·ã§ã³ã®æåããã§ã¯ãªããã³ã¬ã¯ã·ã§ã³ã®æåŸããã«ãŠã³ãããå¿ èŠãããããšãæå³ããŸãã
- ã¹ãããã®è² ã®å€-æ€çŽ¢ã¯å³ããå·Šãžã®éé ã§å®è¡ãããŸãã
- start [ïŒstopïŒstep]ãæå®ãããŠããªãå Žåãã³ã¬ã¯ã·ã§ã³ã®ç«¯ãããã€ãŸãæåã®èŠçŽ ïŒãããå«ãïŒãããã¹ããããæ£ã®å ŽåããŸãã¯æåŸïŒãããå«ãïŒãããã¹ããããè² ã®å ŽåïŒãããã£ãŠãæ«å°Ÿããå é ãŸã§å埩ããŸãïŒ ïŒ
- åæ¢ãæå®ãããŠããªãå Žå[start :: step] -ã³ã¬ã¯ã·ã§ã³ã®ç«¯ãŸã§ãã€ãŸããã¹ããããæ£ã®å Žåã¯æåŸã®èŠçŽ ïŒãããå«ãïŒã«ãã¹ããããè² ã®å Žåã¯æåã®èŠçŽ ïŒãããå«ãïŒã«ç§»åããŸããéå§ïŒã
- step = 1ãã€ãŸããå·Šããå³ãžã®é 次æ€çŽ¢ã¯ãªãã·ã§ã³ã§ããããããããã©ã«ãã®ã¹ãããå€ã§ãã ãã®å Žåã [startïŒstop]ãæå®ããã ãã§ã
- ãã®ããã«ããããšãã§ããŸã[ïŒ] -ããã¯ãã³ã¬ã¯ã·ã§ã³å šäœãååŸããããšãæå³ããŸã
- éèŠ ïŒ ã¹ã©ã€ã¹ãããšããæåã®ã€ã³ããã¯ã¹ã¯éžæã«å«ãŸãã2çªç®ã®ã€ã³ããã¯ã¹ã¯å«ãŸããŸããïŒ
ã€ãŸããéå§ããçµäºãŸã§ãã¹ãããã¯çµæã«å«ãŸããŸããã æ°åŠçã«ã¯ãããã¯[startãstopïŒãšæžããããã®ã«ãŒã«ã§èª¬æã§ããŸãã
[ < > : < > : <> ]
ãããã£ãŠãããšãã°ãmylist [::-1]ã¯mylist [ïŒ0ïŒ-1]ãšåäžã§ã¯ãããŸãããæåã®ã±ãŒã¹ã§ã¯ãã¹ãŠã®èŠçŽ ãå«ãŸãã2çªç®ã®ã±ãŒã¹ã§ã¯ã€ã³ããã¯ã¹0ã«å°éããŸããããªã³ã«ããªãããã§ãïŒ
ããŒãã«ã¹ã©ã€ã¹ã®äŸïŒ
è¡šã®ã³ãŒãäŸ
col = 'abcdefg' print(col[:]) # abcdefg print(col[::-1]) # gfedcba print(col[::2]) # aceg print(col[1::2]) # bdf print(col[:1]) # a print(col[-1:]) # g print(col[3:4]) # d print(col[-3:]) # efg print(col[-3:1:-1]) # edc print(col[2:5]) # cde
2.2ã ååä»ãã¹ã©ã€ã¹
ç¹ã«åãã¹ã©ã€ã¹ãè€æ°å䜿çšããå¿ èŠãããå Žåã«ãããžãã¯å®æ°ããåãé€ãã«ã¯ãç¹å¥ãªé¢æ°sliceïŒïŒ ïŒïŒã䜿çšããŠååä»ãã¹ã©ã€ã¹ã§å®æ°ãèšå®ã§ããŸãã
泚ïŒNonã¯ãçç¥ãããããã©ã«ãå€ãšäžèŽããŸãã ã€ãŸãã[ïŒ2]ã¯ã¹ã©ã€ã¹ïŒNoneã2ïŒã«ãªãã[1 :: 2]ã¯ã¹ã©ã€ã¹ïŒ1ãNoneã2ïŒã«ãªããŸãã
person = ('Alex', 'Smith', "May", 10, 1980) NAME, BIRTHDAY = slice(None, 2), slice(2, None) # # print(person[NAME]) # ('Alex', 'Smith') print(person[BIRTHDAY]) # ('May', 10, 1980)
my_list = [1, 2, 3, 4, 5, 6, 7] EVEN = slice(1, None, 2) print(my_list[EVEN]) # [2, 4, 6]
2.3ã¹ã©ã€ã¹ã䜿çšãããªã¹ãã®ç·šé
泚æãåžžã«éäžããããã§ã¯ãªãéèŠãªç¹ã¯ãã¹ã©ã€ã¹ã䜿çšãããšã³ã¬ã¯ã·ã§ã³ã®ã³ããŒãååŸã§ããã ãã§ãªãããªã¹ãã®å Žåã¯èŠçŽ ã®å€ãå€æŽããããæ°ããå€ãåé€ãããè¿œå ãããã§ããããšã§ãã
以äžã«äŸã瀺ããŸãã
- 1ã€ã®èŠçŽ ãè¿œå ããå Žåã§ããå埩ãªããžã§ã¯ããæž¡ãå¿
èŠããããŸããããããªããšãTypeErrorãšã©ãŒãçºçããŸããå埩å¯èœãªããžã§ã¯ãã®ã¿ãå²ãåœãŠãããšãã§ããŸã
my_list = [1, 2, 3, 4, 5] # my_list[1:2] = 20 # TypeError: can only assign an iterable my_list[1:2] = [20] # print(my_list) # [1, 20, 3, 4, 5]
- ã¹ã©ã€ã¹ã䜿çšããŠåäžã®èŠçŽ ãæ¿å
¥ã§ããŸããäŸã®ã³ãŒãã¯ä»¥äžã«ãããŸããããã®ãããªæ§æã¯èªã¿ã«ãããããããããããšã¯ãå§ãããŸããã ãªã¹ãã¡ãœããã®.appendïŒïŒããã³.insertïŒïŒãããé©åã«äœ¿çšããŸãã
é¡äŒŒäœã®ã¹ã©ã€ã¹.appendïŒïŒããã³insertïŒïŒmy_list = [1, 2, 3, 4, 5] my_list[5:] = [6] # â .append(6) print(my_list) # [1, 2, 3, 4, 5, 6] my_list[0:0] = [0] # â .insert(0, 0) print(my_list) # [0, 1, 2, 3, 4, 5, 6] my_list[3:3] = [25] # â .insert(3, 25) print(my_list) # [0, 1, 2, 25, 3, 4, 5, 6]
- ã·ãŒã±ã³ã¹ã®äžéšãå€æŽã§ããŸãããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãåé¡ãç°¡åãã€æ確ã«è§£æ±ºãããããæãèå³æ·±ãããã«èŠããŸãã
my_list = [1, 2, 3, 4, 5] my_list[1:3] = [20, 30] print(my_list) # [1, 20, 30, 4, 5] my_list[1:3] = [0] # print(my_list) # [1, 0, 4, 5] my_list[2:] = [40, 50, 60] # print(my_list) # [1, 0, 40, 50, 60]
- åã«ã·ãŒã±ã³ã¹ã®äžéšãåé€ã§ããŸã
my_list = [1, 2, 3, 4, 5] my_list[:2] = [] # del my_list[:2] print(my_list) # [3, 4, 5]
2.4ã€ã³ããã¯ã¹ã®ç¯å²ãè¶ ãã
ç¯å²ã§ã¯ãªã1ã€ã®èŠçŽ ã®ã¿ãåç §ããå Žåãã€ã³ããã¯ã¹ã®å転ã¯åºæ¬çã«ã¹ã©ã€ã¹ã®ç¹æ®ãªã±ãŒã¹ã§ãã ãã ããç®çã®ã€ã³ããã¯ã¹ãæã€èŠçŽ ãæ¬ èœããŠããç¶æ³ã®åŠçã«ã¯ãéåžžã«éèŠãªéãããããŸãã
ååšããªãã³ã¬ã¯ã·ã§ã³ã€ã³ããã¯ã¹ã«ã¢ã¯ã»ã¹ãããšããšã©ãŒãçæãããŸãã
my_list = [1, 2, 3, 4, 5] print(my_list[-10]) # IndexError: list index out of range print(my_list[10]) # IndexError: list index out of range
ãããŠãã¹ã©ã€ã¹ã®å¢çãã³ã¬ã¯ã·ã§ã³ã®å¢çãè¶ ããŠãããšã©ãŒã¯çºçããŸããã
my_list = [1, 2, 3, 4, 5] print(my_list[0:10]) # [1, 2, 3, 4, 5] â print(my_list[10:100]) # [] - â print(my_list[10:11]) # [] - 1 - ,
泚 ïŒã¹ã©ã€ã¹ã®æ©èœãååã§ã¯ãªããããè€éãªéžæãå¿ èŠãªå Žåã¯ããµã€ã¯ã«ã®èšäº4ã§èª¬æãããŠããåŒãžã§ãã¬ãŒã¿ãŒã®æ§æã䜿çšã§ããŸãã
3ã³ã¬ã¯ã·ã§ã³ã¢ã€ãã ã®äžŠã¹æ¿ã
ã³ã¬ã¯ã·ã§ã³ã®èŠçŽ ã䞊ã¹æ¿ããããšã¯ãäžè¬çãªã¿ã¹ã¯ã«åžžã«èŠãããéèŠã§äººæ°ã®ããæ©èœã§ãã åžžã«çŠç¹ãåœãŠãŠããããã§ã¯ãããŸããããéåžžã«éèŠãªæ©èœãããã€ããããŸãã
3.1 ãœãŒãæžã¿ ïŒïŒé¢æ°
åŸã§åŠçãŸãã¯åºåããããã«ãsortedïŒïŒé¢æ°ã䜿çšããŠãã³ã¬ã¯ã·ã§ã³ã®ãœãŒãæžã¿ã¢ã€ãã ããªã¹ãã§ããŸãã
- ãã®é¢æ°ã¯å
ã®ã³ã¬ã¯ã·ã§ã³ãå€æŽããŸãããããã®èŠçŽ ã®æ°ãããªã¹ããè¿ããŸãã
- å
ã®ã³ã¬ã¯ã·ã§ã³ã®ã¿ã€ãã«é¢ä¿ãªãããã®èŠçŽ ã®ãªã¹ããè¿ãããŸãã
- å
ã®ã³ã¬ã¯ã·ã§ã³ãå€æŽããªããããäžå€ã®ã³ã¬ã¯ã·ã§ã³ã«é©çšã§ããŸãã
- è¿ãããã¢ã€ãã ã䞊ã¹æ¿ãããšããã¢ã€ãã ã®å
ã®ã³ã¬ã¯ã·ã§ã³ã«ã€ã³ããã¯ã¹ããããã©ããã¯é¢ä¿ãªããããã€ã³ããã¯ã¹ã®ãªãã³ã¬ã¯ã·ã§ã³ã«é©çšã§ããŸãã
- è¿œå ã®ãªãã·ã§ã³åŒæ°ããããŸãã
reverse = True-éé ã§ãœãŒãããŸã
key = funcname ïŒPython 2.4以éïŒ-ç¹å¥ãªfuncnameé¢æ°ã䜿çšããŠãœãŒãããŸããæšæºã®Pythoné¢æ°ããŸãã¯ãã®ã¿ã¹ã¯çšã«ç¹å¥ã«äœæããé¢æ°ãšã©ã ãã®ããããã§ãã
my_list = [2, 5, 1, 7, 3] my_list_sorted = sorted(my_list) print(my_list_sorted) # [1, 2, 3, 5, 7] my_set = {2, 5, 1, 7, 3} my_set_sorted = sorted(my_set, reverse=True) print(my_set_sorted) # [7, 5, 3, 2, 1]
åèŠçŽ ã®é·ãlenïŒïŒã§æååã®ãªã¹ãããœãŒãããäŸïŒ
my_files = ['somecat.jpg', 'pc.png', 'apple.bmp', 'mydog.gif'] my_files_sorted = sorted(my_files, key=len) print(my_files_sorted) # ['pc.png', 'apple.bmp', 'mydog.gif', 'somecat.jpg']
3.2 å転 ïŒïŒé¢æ°
reverseïŒïŒé¢æ°ã¯ã·ãŒã±ã³ã¹ã«äœ¿çšãããç°ãªãåäœãããŸãïŒ
- ãªã¹ãèªäœã§ã¯ãªãããªã¹ããžã§ãã¬ãŒã¿ãŒãè¿ããŸãã
- ãžã§ãã¬ãŒã¿ã§ã¯ãªãæ¢è£œã®ãªã¹ããååŸããå¿
èŠãããå Žåã¯ãçµæãlistïŒïŒã§ã©ããããããéïŒïŒã§ã¯ãªãã¹ã©ã€ã¹[:: -1]ã䜿çšã§ããŸãã
- èŠçŽ ã䞊ã¹æ¿ããã®ã§ã¯ãªã ãéã®é åºã§èŠçŽ ãè¿ããŸããã€ãŸãããªã¹ãã®æåŸããèªã¿åããŸãã
- åã®æ®µèœãããã³ã¬ã¯ã·ã§ã³ã«ã€ã³ããã¯ã¹ãä»ããããŠããªãå Žå-èŠçŽ ãéé ã§è¡šç€ºã§ããããã®é¢æ°ã¯ãã®ãããªã³ã¬ã¯ã·ã§ã³ã«é©çšã§ããªãå Žå-ãTypeErrorïŒargument to reverseïŒïŒmust be a sequenceããåŸãããããšã¯æããã§ãã
- è¿œå ã®åŒæ°ã䜿çšã§ããŸãã-ãTypeErrorïŒreverseïŒïŒdoes not take keyword argumentsããšãããšã©ãŒã衚瀺ãããŸãã
my_list = [2, 5, 1, 7, 3] my_list_sorted = reversed(my_list) print(my_list_sorted) # <listreverseiterator object at 0x7f8982121450> print(list(my_list_sorted)) # [3, 7, 1, 5, 2] print(my_list[::-1]) # [3, 7, 1, 5, 2] -
3.3ãªã¹ãã¡ãœããã ãœãŒã ïŒïŒããã³ã é ïŒïŒ
ãªã¹ãïŒããã³ããã®ã¿ïŒã«ã¯ããœãŒãïŒïŒããã³ãªããŒã¹ïŒïŒã®å¯Ÿå¿ããé¢æ°ãšåãããšãè¡ãç¹å¥ãªã¡ãœãã.sortïŒïŒããã³.reverseïŒïŒããããŸãããåæã«ïŒ
- å
ã®ãªã¹ãèªäœãå€æŽããŸãããæ°ãããªã¹ãã¯çæããŸããã
- æ°ãããªã¹ãã§ã¯ãªãããªããè¿ããŸãã
- åãè¿œå ã®åŒæ°ããµããŒãããŸãã
- ããã«ããªã¹ãèªäœãæåã®ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãå¿ èŠã¯ãããŸãããããã«ããããè¡ããšããšã©ãŒãçºçããŸããåŒæ°ã®æ°ãæ£ãããããŸããã
my_list = [2, 5, 1, 7, 3] my_list.sort() print(my_list) # [1, 2, 3, 5, 7]
泚ïŒåå¿è ã®é »ç¹ãªãšã©ãŒã¯ãã€ã³ã¿ãŒããªã¿ãŒã®ãšã©ãŒã§ã¯ãããŸããããååŸãããçµæã«ã¯ã€ãªãããŸããã
my_list = [2, 5, 1, 7, 3] my_list = my_list.sort() print(my_list) # None
3.4èŸæžãœãŒãã®æ©èœ
èŸæžã®ãœãŒãã«ã¯ãèŸæžèŠçŽ ãããŒãšå€ã®ãã¢ã§ãããšããäºå®ã«èµ·å ããç¬èªã®ç¹æ§ããããŸãã
UPDïŒãŸãããã£ã¯ã·ã§ããªã®ãœãŒãã«ã€ããŠè©±ããšãããã£ã¯ã·ã§ããªããåä¿¡ããããŒã¿ããœãŒãããŠåºåãŸãã¯ã€ã³ããã¯ã¹ä»ãã³ã¬ã¯ã·ã§ã³ã«ä¿åããããšãæå³ããããšãå¿ããªãã§ãã ããã æšæºã®ãã£ã¯ã·ã§ããªèªäœã§ãœãŒããããããŒã¿ãä¿åããããšã¯ã§ããŸãã;ãããã¯ãä»ã®ã€ã³ããã¯ã¹åãããŠããªãã³ã¬ã¯ã·ã§ã³ã®ããã«ãã©ã³ãã ãªé åºã§ä¿åãããŸãã
- ãœãŒãæžã¿ïŒmy_dictïŒ-è¿œå ã®ã¡ãœãããåŒã³åºããã«èŸæžããœãŒãé¢æ°ã«æž¡ããšãããŒã®ã¿ãåæããããœãŒããããããŒã®ãªã¹ããè¿ãããŸãã
- ãœãŒãæžã¿ïŒmy_dictãkeysïŒïŒïŒ-åã®äŸãšåãçµæã§ãããããæ確ã«èšè¿°ãããŠããŸãã
- ãœãŒãæžã¿ïŒmy_dictã é ç® ïŒïŒïŒ-ããŒã§ãœãŒããããã¿ãã«ïŒããŒãå€ïŒã®ãœãŒãæžã¿ãªã¹ããè¿ããŸãã
- ãœãŒãæžã¿ïŒmy_dictã å€ ïŒïŒïŒ-ãœãŒãæžã¿ã®å€ã®ãªã¹ããè¿ããŸã
my_dict = {'a': 1, 'c': 3, 'e': 5, 'f': 6, 'b': 2, 'd': 4} mysorted = sorted(my_dict) print(mysorted) # ['a', 'b', 'c', 'd', 'e', 'f'] mysorted = sorted(my_dict.items()) print(mysorted) # [('a', 1), ('b', 2), ('c', 3), ('d', 4), ('e', 5), ('f', 6)] mysorted = sorted(my_dict.values()) print(mysorted) # [1, 2, 3, 4, 5, 6]
å€ã®ãªã¹ãã ããå¿ èŠã§ã¯ãªããå€ã§ãœãŒãé ã§ãã¢ã衚瀺ããå Žå ãããŒã§ã¯ãªãå€ã§èŸæžããœãŒããããšãå¥ã®åé¡ãçºçããå¯èœæ§ããããŸãã
ãã®åé¡ã解決ããããã«ãã©ã ãé¢æ°lambda xïŒx [1]ãç¹å¥ãªãœãŒãé¢æ°ãšããŠè»¢éããããšãã§ããŸããåã¹ããŒãžã§åãåã£ãã¿ãã«ïŒããŒãå€ïŒã¯ãã¿ãã«ã®2çªç®ã®èŠçŽ ããœãŒãã«äœ¿çšããŸãã
population = {"Shanghai": 24256800, "Karachi": 23500000, "Beijing": 21516000, "Delhi": 16787941} # : population_sorted = sorted(population.items(), key=lambda x: x[1]) print(population_sorted) # [('Delhi', 16787941), ('Beijing', 21516000), ('Karachi', 23500000), ('Shanghai', 24256800)]
ShashkovS UPDïŒ3.5ãœãŒãã§ã®ããŒãã©ã¡ãŒã¿ã®äœ¿çšã«é¢ããè¿œå æ å ±
ããŒãåãšãã®å€ã®ã¿ãã«ã®ãªã¹ãããããšããŸãã
æåã«éšååã§ãœãŒãããäŸ¡æ Œãé«ãé ã«åãéšåããœãŒãããå¿ èŠããããŸãã
shop = [('', 1200), ('', 1000), ('', 300), ('', 100), ('', 1500), ('', 12000), ('', 2000), ('', 200), ('', 2700)] def prepare_item(item): return (item[0], -item[1]) shop.sort(key=prepare_item)
ãœãŒãçµæ
for det, price in shop: print('{:<10} : {:>5}.'.format(det, price)) # : 1200. # : 2000. # : 100. # : 12000. # : 2700. # : 1500. # : 300. # : 1000. # : 200.
ãªã¹ãã®2ã€ã®èŠçŽ ãæ¯èŒããåã«ãprepare_itemé¢æ°ããããã«é©çšãããã³ã¹ãã®ç¬Šå·ãå€æŽãããŸããïŒé¢æ°ã¯åèŠçŽ ã«1åã ãé©çšãããŸãããã®çµæãåãæåã®å€ã§ã2çªç®ã¯éã®é åºã§ãœãŒããããŸããïŒ
ãµãŒãããŒãã£ã®é¢æ°ã䜿çšãã代ããã«ãå®çšçãªé¢æ°ãçæããªãããã«ãã©ã ãé¢æ°ã䜿çšããŠåãå¹æãå®çŸã§ããŸãã
# shop.sort(key=lambda x: (x[0], -x[1]))
keyãã©ã¡ãŒã¿ãŒã®äœ¿çšã«é¢ããè¿œå ã®è©³çŽ°ãšäŸïŒ
- wiki.python.org/moin/HowTo/Sorting#Key_Functions ïŒè±èªïŒã
- habrahabr.ru/post/319200/#comment_10011882-ãã®èšäºã®ShashkovSã®è©³çŽ°ãªäŸãå«ãå¥ã®ã³ã¡ã³ã
ShashkovS UPDïŒ3.6ãœãŒãã®å®å®æ§
ããŒã¿ãæåã«åAã§æé ã«äžŠã¹æ¿ãã次ã«åBã§éé ã«äžŠã¹æ¿ããæåŸã«åCã§åã³æé ã«äžŠã¹æ¿ãããšããŸãã
åBã®ããŒã¿ãæ°å€ã®å ŽåãããŒã®é©åãªé¢æ°ã䜿çšããŠãBã®èŠçŽ ã®ç¬Šå·ãå€æŽã§ããŸããããã«ãããç®çã®çµæãåŸãããŸãã
ãããŠããã¹ãŠã®ããŒã¿ãããã¹ãã®å Žåã¯ã©ããªããŸããïŒ ãã®ãããªæ©äŒããããŸãã
äºå®ããœãŒãã®ãœãŒãã¯PythonïŒPython 2.2以éïŒã§å®å®ããŠããŸããã€ãŸãããåããèŠçŽ ã®é åºã¯å€æŽãããŸããã
ãããã£ãŠãç°ãªãããŒã§åçŽã«3åãœãŒãã§ããŸãã
data.sort(key=lambda x: x['C']) data.sort(key=lambda x: x['B'], reverse=True) data.sort(key=lambda x: x[''])
ãœãŒãã®å®å®æ§ãšäŸã«é¢ããè¿œå æ å ±ïŒ wiki.python.org/moin/HowTo/Sorting#Sort_Stability_and_Complex_Sorts ïŒè±èªïŒã
ããŒã1 | ããŒã2 | ããŒã3 | ããŒã4 |
---|
ãã£ã¹ã«ãã·ã§ã³ã«æåŸ ããŸãã
- ç§ãã©ããã§ééããããéèŠãªããšãèæ ®ããªãã£ãå Žå-ã³ã¡ã³ããæžããŠãã ãããéèŠãªã³ã¡ã³ãã¯ãèè åã瀺ãèšäºã®åŸåã«è¿œå ãããŸãã
- æ確ã§ãªãç¹ãããã説æãå¿ èŠãªå Žåã¯ãã³ã¡ã³ãã«è³ªåãæžããŠãã ããããŸãã¯ãç§ãŸãã¯ä»ã®èªè ãçããåºããšãçãã®ããå®çšçãªè³ªåãåŸã§èšäºã«è¿œå ãããŸãã