Pythonのリストの重さを除去する方法とsortの中のkeyの意味

1328 ワード

リストをやり直すというのは、面接でよく聞かれるテーマです.次はまず最も直感的で、比較的簡単な方法です.
1つ目:直感的な方法
mylist=[5,6,4,1,'h','a','f','a',2,4,2,1]
mylist2=[]
for i in mylist:   #      
    if i not in mylist2: #              2 
        mylist2.append(i)   #            2 
print(mylist2)

これはpythonの中で最も基礎的で直感的な方法で、理解しやすいです.
2つ目:setによる重量除去
まずsetが何であるかを理解し,setは集合であり,ここでは集合が繰り返さないという特徴を利用した.
mylist=[5,6,4,1,'h','a','f','a',2,4,2,1]
li =list(set(mylist))  #      ,    ,      
print(li)

簡単には重い効果を実現しますが、結果は私たちが想像していたのとは違います.集合は無秩序なので、元のリストの順序を乱します.もちろん、これは解決策があります.コードを1行追加するだけでいいです.次は完全版です.
mylist=[5,6,4,1,'h','a','f','a',2,4,2,1]
li =list(set(mylist))
li.sort(key=mylist.index)
print(li)

ここではsort()の2つのオプションパラメータ,keyとreverseについて述べ,主にkeyの使い方について述べる.key=mylist.indexはmylistリストの数値に対応する下付き文字でソートされます.つまり、元の順序でソートされます.reverseはfalseまたはtureと昇順と降順を表し、デフォルトは昇順です.
もう一つ複雑で理解しにくいものがあります.
mylist=[5,5,6,4,1,'h','a','f','a',2,4,2,1]
mylist2=[]
i =0
while i
このような1つの数を検索することによって最初に現れた座標がiと等しいかどうかを判断し、等しい場合は新しいリストに格納し、等しくなければスキップし、これは複雑で、理解すればいい.JavaScriptのような配列は重くなる.