list.sort() と for i in sorted(list)

投稿者: | 9月 3, 2022

list.sort()で、ソート(並び替え)を実施した場合は、変数(下記の場合f_lists2)自体がソートされた状態に変更される。

for i in sortedの場合は、ソート(sorted)された状態状態のリストから、アイテムを取り出しlstという新しいリストに代入して同じ結果を得ているが、f_lists2という変数自体は変更されていない。

In [1]: f_list2 = ['apple', 'banana', 'apple', 'kiwi', 'apple', 'orange', 'peach']

In [2]: lst = []

In [3]: for i in sorted(f_list2):          #f_lists2をソートした状態でiに代入している
   ...:     lst.append(i)
   ...: print(lst)

['apple', 'apple', 'apple', 'banana', 'kiwi', 'orange', 'peach']

In [4]: f_list2
Out[4]: ['apple', 'banana', 'apple', 'kiwi', 'apple', 'orange', 'peach']

In [5]: f_list2.sort()

In [6]: f_list2          #f_lists2自体がソートされている
Out[6]: ['apple', 'apple', 'apple', 'banana', 'kiwi', 'orange', 'peach']