Pythonでsetでリスト(list)重複要素を除去

3538 ワード

Pythonのsetタイプは他の言語と似ており、関係テストと重複要素の除去を含む無秩序な重複要素セットです.
いくつかのデータを処理するには、リストa=[5,2,5,1,4,3,4]のような重複要素を除去する必要があります.

  
  
  
  
  1. a = [5251434]  
  2. print list(set(a)) 

Pythonではset集合オブジェクトはunion(連合[|])、intersection(交差[&])、difference(差[-])、sysmmetric difference(対称差^)などの数学演算もサポートしている.次のようになります.

  
  
  
  
  1. a = set('abracadabra')  
  2. b = set('alacazam')  
  3.  
  4. # a b  
  5. print a & b  
  6. print a.intersection(b)  
  7. # a b  
  8. print a | b  
  9. print a.union(b)  
  10. # a b  
  11. print a - b  
  12. print a.difference(b)  
  13. # a b b a  
  14. print a ^ b  
  15. print a.symmetric_difference(b) 

もちろん、Pythonにはsetに関する操作タイプがたくさんありますが、ここでは一つ一つ挙げません.テキストに重複する要素がある場合は、次のように削除します.

  
  
  
  
  1. [root@linuxidc ]# cat done.txt   
  2. linuxidc  
  3. linuxidc  
  4. linuxidc  
  5.  
  6. http://www.linuxidc.com/  
  7. http://www.linuxidc.com/ 

Pythonはsetを利用して重複要素を除去する方式で、以下の通りである.

  
  
  
  
  1. In [1]: print '
    '
    .join(set(open('done.txt').read().split('
    '
    )))  
  2.  
  3. linuxidc  
  4. http://www.linuxidc.com/  
  5.  
  6. In [2]: print ''.join(set([x for x in open('done.txt').readlines() if x.strip()!='']))  
  7. linuxidc  
  8. http:///www.linuxidc.com/