我之前一直傻傻的認為: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.txtlinuxidc
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,它並不是為快速隨機訪問設計的...