| CARVIEW |
?mPython?N?C?Y?n???X?g?̗v?f???t???ɕ??בւ?????@?A???v???t???܂????H?FPython?X?e?b?v?A?b?v?N?C?Y
?u???X?g?̗v?f???t???Ɂv?ƕ????ꂽ??A?ǂ?ȕ??@???ǂꂭ?炢?v???t???܂????H?@???̕??@?₻?̕??@?͒N?ł???????ł??傤???ǁA????Ȃ????????邩??????܂???B?Ƃ????̂??l???Ă݂܂??傤?B
???̋L???͉??????ł??B????o?^?i?????j????ƑS?Ă????????????܂??B
?y???z
?@???X?g?̗v?f???t???ɕ??בւ?????@?͉????邩?A?l???Ă݂Ăق????B?Ⴆ?A?umylist = [2, 8, 3, 7, 1, 2, 1]?v?Ƃ??č쐬???????X?g?̗v?f???t???ɕ??בւ???Ɓu[1, 2, 1, 7, 3, 8, 2]?v?ƂȂ?B?ȉ??͂????Ɏv???t???ł??낤???X?g??reverse???\?b?h???g?????R?[?h?̗Ⴞ?B?Ȃ??A?V?K?Ƀ??X?g?????Ă??悢???A???̃??X?g???C???v???[?X?ŕύX???Ă??悢?B
mylist = [2, 8, 3, 7, 1, 2, 1]
mylist.reverse()
print(mylist) # [1, 2, 1, 7, 3, 8, 2]
?@?ǂ???HP???킳???ł??B????̖??̓N?C?Y?Ƃ??Ă͂ǂ??Ȃ̂?H?@?Ƃ??????m?ɂȂ??Ă??܂??܂????i?܂??ł????j?B???X?g?̗v?f???t???ɕ??בւ?????@?ɂ̓o???G?[?V??????????????߂??āu?????X?ł??ˁv?ȁ[??Ă??Ƃ͊ȒP?ɂ͂????Ȃ???ł???ˁB
?@?ŏ??́u2?v?u4?v?݂????ȑI??????p?ӂ??悤?Ǝv???܂???????????߂܂????B?Ȃ̂ŁA?ǎ҂̊F??????u????ȕ??@???????ˁv?u????̓C?P?邩?ȁH?v?݂????Ȋ????Ń??X?g?̗v?f???t???ɕ??בւ?????@???????Ă?????????Ǝv???܂??B
?@?M?҂͈ȉ??̓??????v???t???܂??????A?u???ɂ?????Ȃ̂??????I?v?u?Ȃ?ŃR?????Ȃ??́H?v?Ȃ?ē??????v???t???l??????͂??ł??B????Ȃ??̂?????AHP???킳???܂ŋ????Ă????????ˁB
?@?ł́AHP???킳?????v???t?????????\???܂??B?f???f???f???f???[?i?h???????[???j?B
?y?????z
?@?ȉ??͕M?ҁiHP???킳???j???v???t?????????ł??B
- reverse???\?b?h???g??
- reversed?????g??
- ?X???C?X?Łu[::-1]?v???w?肷??
- ????\?L???g??
- for???ƃ??X?g?̃??\?b?h??g?ݍ??킹??
- while???ƃ??X?g?̃??\?b?h??g?ݍ??킹??
- sorted????enumerate????g?ݍ??킹??
?@5??6?????āu?t???t???????\?????Ȃ??v?Ǝv???܂??????H?@?ł??A???X?g?̗v?f???C???f?b?N?X?A?N?Z?X?Ŏ??o???Č??ʂ̃??X?g??insert???\?b?h?ő}???????????????Apop???\?b?h?Ŕj??I?Ƀ??X?g????v?f?????o???Č??ʂ̃??X?g??append???\?b?h?Œlj??????????????킯?ŁA?????ł͂??????ЂƂ܂Ƃ߂ɂ??Ă??܂??B?u???₢??A?????͖??m?ɈႤ?????ł?????I?v?Ƃ????l???????????邩??????܂??A?????ł͂??????????Ƃň???肢???܂??B
?@?ȉ??̉???̌㔼?ŁA?????̂????̑??x???r???Ă݂܂??B?ǂ???g??????????????Q?l?ɂ??Ă݂Ă????????B
?y????z
?@????????͉???Ƃ??????A???ꂼ??̂?????Python?̃R?[?h?Ƃ??ċL?q???Ă݂܂??傤?B
?@?ŏ??͊ȒP?Ȃ??̂Ƃ??āA????3?̃R?[?h???Љ?܂??B
- reverse???\?b?h???g??
- reversed?????g??
- ?X???C?X?Łu[::-1]?v???w?肷??
?@?ȉ???3?̂????̃R?[?h???܂Ƃ߂Ď????܂??B
# 1. reverse???\?b?h
mylist = [2, 8, 3, 7, 1, 2, 1]
mylist.reverse()
print(mylist) # [1, 2, 1, 7, 3, 8, 2]
# 2. reversed??
mylist = [2, 8, 3, 7, 1, 2, 1]
result = list(reversed(mylist))
print(result) # [1, 2, 1, 7, 3, 8, 2]
# 3. ?X???C?X
mylist = [2, 8, 3, 7, 1, 2, 1]
result = mylist[::-1]
print(result) # [1, 2, 1, 7, 3, 8, 2]
?@?o???Ă????ׂ???reverse???\?b?h?̓C???v???[?X?Ń??X?g?̗v?f????בւ??邱?ƂƁAreversed???̖߂?l?????X?g?ł͂Ȃ??C?e???[?^?[?ł??邱?ƂƁi???X?g?ɂ???????Ζ߂?l??list???ɓn???j?ł??傤???B?u[::-1]?v?Ƃ????X???C?X???g?????@?́A?J?n?ʒu?ƏI???ʒu???ȗ????āA??????-1?ɂ??邱?Ƃŋt???ɕ??v?f???擾???邱?Ƃ??Ӗ????Ă??܂??B
?@????4?̓???\?L???g????ł??B
# 4. ????\?L
mylist = [2, 8, 3, 7, 1, 2, 1]
result = [mylist[-idx] for idx in range(1, len(mylist) + 1)]
print(result) # [1, 2, 1, 7, 3, 8, 2]
mylist = [2, 8, 3, 7, 1, 2, 1]
result = [mylist.pop() for _ in range(len(mylist))]
print(result) # [1, 2, 1, 7, 3, 8, 2]
?@???A?????ł???2?̃o???G?[?V???????o?Ă??܂????ˁB1?ڂ̃R?[?h?́ulen???Ń??X?g?̗v?f???ׂāArange????1?n?܂?̃C???f?b?N?X??????悤?ɂ??A??????}?C?i?X?̃C???f?b?N?X?Ƃ??Ďw?肷?邱?ƂŖ???????v?f?????o???Ă????v?????????\?L?Ƃ??ĕ\?????Ă??܂??B
?@2?ڂ̃R?[?h?́u???X?g?̗v?f???????Apop???\?b?h?Ŗ???????v?f?????o???Ă????v?????????\?L?Ƃ??ĕ\?????Ă??܂??B??????͌??̃??X?g?imylist?j??j??_?ɒ??ӂ??K?v?ł??B
?@?M?҂͂???2?̕??@???v???t?????Ƃ???Ŗ??????Ă??܂??܂??????A???̕??@?????邩??????܂???B
?@5??for???ƃ??X?g?̃??\?b?h??g?ݍ??킹????@???o???G?[?V?????܂߂Č??Ă݂܂??傤?B
# 5. for???[?v???g??????
mylist = [2, 8, 3, 7, 1, 2, 1]
result = []
for item in mylist:
result.insert(0, item)
print(result) # [1, 2, 1, 7, 3, 8, 2]
result = []
for _ in range(len(mylist)):
result.append(mylist.pop())
print(result) # [1, 2, 1, 7, 3, 8, 2]
?@?ŏ??̗?̓??X?g?̗v?f?????āA?????????ʂ̃??X?g?̐擪?ɑ}??????????ł??B????͌??̃??X?g??j?܂???B???̗?͓???\?L??2?ڂ̃R?[?h??for???ɏ??????????ƍl?????܂??ˁBpop???\?b?h???g???Ă???̂ŁA???̃??X?g?͔j??܂??B
?@6?́uwhile???ƃ??X?g?̃??\?b?h??g?ݍ??킹??v?????̗???ȉ??Ɏ????܂??B
# 6. while????pop???\?b?h
mylist = [2, 8, 3, 7, 1, 2, 1]
result = []
while mylist:
result.append(mylist.pop())
print(result) # [1, 2, 1, 7, 3, 8, 2]
?@?o???G?[?V???????l???܂??????A???ꂪ??ԊȌ????Ȃ??Ǝv???܂??B??{?I?ȍl??????for????2?ڂ̗?Ɠ????ł??B?|?C???g??while???̏I???????????X?g???ǂ????ɂȂ??Ă??邱?Ƃ??炢?ł??傤???B
?@sorted???ɕ??בւ??̃L?[?Ƃ??ăC???f?b?N?X???w?肷??A???X?g?̗v?f???t???ɕ??בւ??????Ȃ??H?@?Ƃ????l???f?????̂??A7?́usorted????enumerate????g?ݍ??킹??v?????ł??B???ۂ̃R?[?h?͎??̂悤?ɂȂ?܂??B
# 7. sorted????enumerate????g?ݍ??킹??
mylist = [2, 8, 3, 7, 1, 2, 1] # ???X?g?ɓ????l??????????
result = [x for _, x in sorted(enumerate(mylist), reverse=True)]
print(result) # [1, 2, 1, 7, 3, 8, 2]
?@sorted????key?p?????[?^?[?ɂ͕??בւ??̃L?[???w??ł??܂????A???̃L?[?͈?????1?????i???邢?͎??j?łȂ???Ȃ?܂???B?????āA???בւ??̍ۂɂ̓??X?g?̗v?f???????n?????悤?Ȑv?ɂȂ??Ă??܂??B???̂??߁A???X?g?????̂܂ܓn???Ă??A?X?̗v?f???炻?̃C???f?b?N?X?邱?Ƃ??ł??Ȃ??̂??A???̕??@?̓?_?ł??B
?@?????ŏ?̃R?[?h?ł́A???X?g??enumerate???ɓn???āA???̃C???f?b?N?X?ƒl???琬??^?v???i?̃V?[?P???X?j??sorted???ɓn???āA?t???ɕ??בւ??A???x?͂??̒l?????????o??????\?L?Ɋ܂߂?悤?ɂ??Ă??܂??B???????炵???????ł????A?m???ɂ???ł??t???ɕ??בւ????܂??B
?@?????ł?key?p?????[?^?[?̎w??????Ă??܂??A?v?f?Ƃ??āu(?C???f?b?N?X, ?l)?v?Ƃ????^?v?????n?????̂ŁA?ukey=lambda x: x[0]?v?̂悤?Ƀ^?v???̑?0?v?f????בւ??̃L?[?ɂ???Ƃ????w??????Ă??????ł??B
?@?X?̏????ɕ????āA??ł???Ă??邱?Ƃ??L?q?????̂??ȉ??ł??B
e = enumerate(mylist)
tmp = list(e)
r0 = sorted(tmp)
print(r0) # [(0, 2), (1, 8), (2, 3), (3, 7), (4, 1), (5, 2), (6, 1)]
r1 = sorted(tmp, reverse=True)
print(r1) # [(6, 1), (5, 2), (4, 1), (3, 7), (2, 3), (1, 8), (0, 2)]
r2 = [x for _, x in r1]
print(r2) # [1, 2, 1, 7, 3, 8, 2]
?@enumerate???Ƀ??X?g??n???ƁA???̃C???f?b?N?X?ƒl??v?f?Ƃ???^?v????????C?e???[?^?[??????????܂??B??????????ł?list???ɓn???ă??X?g?ɂ??Ă??܂??Bsorted???ɂ??̃??X?g?????̂܂ܓn???ƁA?^?v???̑?0?v?f?ł???C???f?b?N?X???L?[?Ƃ??ĕ??בւ????s???܂??B?uprint(r0)?v?̌??ʂ??????ł??B?C???f?b?N?X???ɗv?f?????בւ????Ă???i???ʂƂ??Ă͕??בւ????Ă??Ȃ??j?̂???????܂??B
?@??????sorted????reverse=True???w?肷?邱?ƂŁA??????t???ɕ??בւ????܂??B???̌??ʂ??uprint(r1)?v?ŕ?????܂??B
?@?C???f?b?N?X?͕s?v?Ȃ̂ŁA?Ō?Ƀ^?v????v?f?Ƃ??郊?X?g????A?l?????????\?L?Ǝ??o???t???ɕ??בւ???ꂽ???X?g?̂ł???????I?@?Ƃ????킯?ł??ˁB
???s???Ԃ??v?????Ă݂悤
?@?Ƃ????܂ł́A????ނ??̂??????Љ?Ă??܂????B?????ŏI????Ă??悢?̂ł????A???s???Ԃ??v?????āA?ǂꂪ??ԗǂ????????ɂ??ď??????????Ă݂܂??傤?B????????ƃR?[?h???????܂??B
from time import time
from random import randint
def time_reverse_list(func, data_count=10000, exec_count=10000):
mylist = [randint(0, 100) for _ in range(data_count)]
start = time()
for _ in range(exec_count):
func(mylist)
end = time()
return func.__name__, end - start
def use_reverse(mylist):
mylist.reverse()
def use_reversed_func_0(mylist):
result = reversed(mylist)
def use_reversed_func_1(mylist):
result = list(reversed(mylist))
def use_slice(mylist):
result = mylist[::-1]
def use_list_comprehension_0(mylist):
result = [mylist[-idx] for idx in range(1, len(mylist) + 1)]
def use_list_comprehension_1(mylist):
tmp = mylist.copy()
result = [tmp.pop() for idx in range(len(tmp))]
def use_for_loop_0(mylist):
result = []
for item in mylist:
result.insert(0, item)
def use_for_loop_1(mylist):
tmp = mylist.copy()
result = []
for _ in range(len(tmp)):
result.append(tmp.pop())
def use_while_loop(mylist):
tmp = mylist.copy()
result = []
while tmp:
result.append(tmp.pop())
def use_sorted_func(mylist):
result = [x for _, x in sorted(enumerate(mylist), reverse=True)]
funcs = [use_reverse, use_reversed_func_0, use_reversed_func_1, use_slice,
use_list_comprehension_0, use_list_comprehension_1,
use_for_loop_0, use_for_loop_1, use_while_loop, use_sorted_func]
for func in funcs:
name, t = time_reverse_list(func)
print(f'{name[4:]}: {t:.6f}')
?@time_reverse_list???͍??܂łɌ??Ă????????????????????̂??0?????Ɏ??܂??B???X?g?̗v?f???idata_count?j?Ɗ??̌Ăяo???iexec_count?j???w??ł??܂????A?f?t?H???g?????l??10000?ɂ??Ă??܂??B?????ł̓f?t?H???g?????l?????̂܂g?????Ƃɂ??܂??B
?@time_reverse_list???̌?ɂ͍??܂łɌ??Ă????????????ɂ??????̂??Y?????ƕ???ł??܂??B???????A???̃??X?g??j?鏈???ɂ??Ă͍ŏ??Ƀ??X?g???R?s?[????悤?ɂ??Ă??܂??i?R?s?[?ɂ????鎞?Ԃ????s???ԂƂ??Čv??????Ă???_?ɂ͒??ӂ??Ă????????j?B
?@??͊e????v?f?Ƃ??郊?X?g???쐬???āAfor???[?v??time_reverse_list???ɂ?????n???āA???s???Ԃ?\?????邾???ł??B
?@???s???ʂ??ȉ??Ɏ????܂??B
| ???? | ???ԁi???v?j |
|---|---|
| reverse???\?b?h | 0.044444 |
| reversed???i???X?g?????Ȃ??j | 0.001409 |
| reversed???i???X?g??????j | 0.406508 |
| ?X???C?X | 0.132200 |
| ????\?L?iinsert???\?b?h?j | 4.659034 |
| ????\?L?ipop???\?b?h?j | 3.333162 |
| for???[?v?iinsert???\?b?h?j | 135.674039 |
| for???[?v?ipop???\?b?h?j | 4.182015 |
| while???[?v | 3.755522 |
| sorted?? | 15.654806 |
| ???s???Ԃ̌v?????? | |
?@?p?b?ƌ????Ƃ???Afor???[?v?ŃC???f?b?N?X?A?N?Z?X?{insert???\?b?h?Ń??X?g?̐擪?ɗv?f??}?????Ă??????Ƃŋt???ɕ??בւ???????????|?I?Ȓx?????????܂????B???X?g?̐擪?ւ̑}?????R?X?g?̂????鏈???Ȃ̂ł??傤???B
?@??????m???߂邽?߂ɁA???̃R?[?h?????s???Ă݂܂????B
def use_for_loop_2(mylist):
result = []
for idx in range(1, len(mylist)+1):
result.append(mylist[-idx])
time_reverse_list(use_for_loop_2)
?@???????range????for?????g???āA???X?g?̖??????珇?ɗv?f?????o???A????????X?g?̖?????append???\?b?h?Œlj????Ă????R?[?h?ł??B?v?f?̔???????߂ăC???f?b?N?X?Ŗ???????v?f?ɃA?N?Z?X???Ă???_?ƁA???X?g?̐擪??insert???\?b?h?ő}??????̂???߂ă??X?g?̖?????append???\?b?h?Œlj????Ă???_???قȂ??Ă???Ƃ???ł??B
?@???̎??s???ʂ͓???\?L?????1??for???[?v?ipop???\?b?h??append???\?b?h???g?p?j?ȂǂƑ?̓??????ԂŏI???܂????B?Ƃ????킯?ŁA???X?g?̐擪?ւ̑}???͎??ԃR?X?g???????????Ȃ̂???????܂???ˁB
?@?ƂȂ?ƁAdeque?I?u?W?F?N?g???C?ɂȂ?܂??Bdeque?I?u?W?F?N?g?͐擪?Ɩ????ւ̑}?????????ȃ??X?g???C?N?ȃI?u?W?F?N?g?ł??B
from collections import deque
def use_deque(mylist):
result = deque()
for item in mylist:
result.appendleft(item)
time_reverse_list(use_deque)
?@???̂??????ƁA?????[?????????????̂??Ǝv?????̂ł????A????\?L??append???\?b?h???g????for???[?v?Ƃ????悻?????悤?Ȏ??ԁi???????A??????j?Ƃ??????ʂɂȂ?܂????B
?@?????2?̂??????܂߂Ď??s???Ԃ̌v?????ʂ??ȉ??Ɏ????܂??B
| ???? | ???ԁi???v?j |
|---|---|
| reverse???\?b?h | 0.044444 |
| reversed???i???X?g?????Ȃ??j | 0.001409 |
| reversed???i???X?g??????j | 0.406508 |
| ?X???C?X | 0.132200 |
| ????\?L?iinsert???\?b?h?j | 4.659034 |
| ????\?L?ipop???\?b?h?j | 3.333162 |
| for???[?v?iinsert???\?b?h?j | 135.674039 |
| for???[?v?ipop???\?b?h?j | 4.182015 |
| while???[?v | 3.755522 |
| sorted?? | 15.654806 |
| for???[?v?i????2?j | 4.999490 |
| deque?I?u?W?F?N?g | 3.054137 |
| ???s???Ԃ̌v?????? | |
?@?????̂?reverse???\?b?h??reversed???i???X?g?????Ă????Ȃ??Ă??j?A?X???C?X?Ƃ??āu[::-1]?v???w??Ƃ???4?̂????ł????B???X?g?̐擪??insert????for?????Ƃ?킯?x???????̂͏?Ō????ʂ?ł??B???͎???????????̌??ʂł????Asorted?????g???????@?͂܂??܂??x???ł??ˁB?R?[?h???????Ȃ???x?????Ǝv?????????̂??Ƃ͂???܂??i?j?B
?@?Ƃ????킯?ŁA???_?̓??X?g?̗v?f???t???ɕ??בւ?????@?͂??낢?날?邯??ǁA???x?????߂?Ȃ?Python?̃G???C?l???????p?ӂ??Ă??ꂽreverse???\?b?h??reversed???A?X???C?X?w????g?????Ă??????Ƃ??????Ƃł??ˁB
?@???X?g?̗v?f?̑???ɂ??ẮuPython?????v?̑?17??u???X?g?̑????v?ł???舵???Ă??܂??isorted???ɂ??Ă??G??Ă??܂??j?B?܂??Adeque?I?u?W?F?N?g?ɂ??Ắu?????IPython?v?́udeque?I?u?W?F?N?g???g???ɂ??v?ŏЉ?Ă??܂??B?????̂??ƂȂ???A?????̂?????͂?????????Ђ????????????B
?@?t???ɕ??בւ???????Ɨǂ????@???????A?Ƃ???????HP???킳???܂Ń????V?????Ȃ?Ȃ?Ȃ肢????????Ƃ??ꂵ???ł??B
?uPython?X?e?b?v?A?b?v?N?C?Y?v
AI?E?f?[?^?T?C?G???X?̊w?т?????????
???S?Ҍ????A?f?[?^???́EAI?E?@?B?w?K?EPython?̕????@?@??IT??Deep Insider?Ŋw?ڂ?
Copyright© Digital Advantage Corp. All Rights Reserved.
?A?C?e?B???f?B?A????̂??m?点
??IT eBook
?ҏW??????̂??m?点
RSS?ɂ???
?A?C?e?B???f?B?AID?ɂ???
???[???}?K?W???o?^
??IT?̃??[???}?K?W???́A ???????A???ׂĖ????ł??B???Ѓ??[???}?K?W???????w?ǂ????????B
ITmedia?̓A?C?e?B???f?B?A??????Ђ̓o?^???W?ł??B
???f?B?A?ꗗ | ????SNS | ?L???ē? | ???₢???킹 | ?v???C?o?V?[?|???V?[ | RSS | ?^?c??? | ?̗p??? | ??????








