python中set和list的坑。。。

2021-09-24 05:16:32 字數 1244 閱讀 9881

我之前一直傻傻的認為:set()的作用就是把list中的東西單純的變換了格式

將 [ ] 變成了

其實不然,它去掉了list中的重複元素。。。

python

的set型別和其他語言類似,是乙個無序不重複元素集,基本功能包括關係測試和消除重複元素。

如果我們要處理一些資料,需要去除掉重複元素,比如列表a = [5, 2, 5, 1, 4, 3, 4],可以用如下方式實現

a = [5, 2, 5, 1, 4, 3, 4]  

print list(set(a)) 

python中set集合物件還支援union(聯合[|])、intersection(交[&])、difference(差[-])和sysmmetric difference(對稱差集^)等數**算。如下:

a = set('abracadabra')  

b = set('alacazam')  

# a包含且b包含的字元

print a & b  

print a.intersection(b)  

# a包含或b包含的字元

print a | b  

print a.union(b)  

# a包含且b不包含的字元

print a - b  

print a.difference(b)  

# a包含且b不包含的字元和b包含且a不包含的字元

print a ^ b  

print a.symmetric_difference(b) 

當然,python中關於set的操作型別還有很多,這裡就不一一枚舉了。如果乙個文字中有重複的元素,我們應該如何去除呢,文字內容如下:

[root@linuxidc ]# cat done.txt   

linuxidc  

linuxidc  

linuxidc     

python利用set去除重複元素的方式,如下:

python中list和set查詢

fromrandomimportrandrange fromtimeitimport importsys l randrange 1000 foriinrange 100 print sys.getsizeof l s set l print sys.getsizeof s defchecklist...

集合中List和Set

collection介面有兩個子介面 list 列表 set 集 list 可存放重複元素,元素訪問是有序的。set 不可以存放重複元素,元素訪問是無序 的list集合中常用的類 vector 執行緒安全,但速度慢,已被 arraylist 替代。arraylist 執行緒不安全,查詢速度快。lin...

java中set和list的區別

set和list都是集合介面 簡要說明 set 其中的值不允許重複,無序的資料結構 list 其中的值允許重複,因為其為有序的資料結構 list的功能方法 實際上有兩種list 一種是基本的arraylist,其優點在於隨機訪問元素,另一種是更強大的linkedlist,它並不是為快速隨機訪問設計的...