Python基礎8-集合
阿新 • • 發佈:2018-02-24
tail 進行 copy log update trac err pos date
集合是一個無序的,不重復的數據組合。
它的特點是:
- 唯一性
- 無序性
- 不支持索引
它的主要作用是:
- 去重,把一個列表變成集合,就自動去重了。
- 關系測試,測試兩組數據之間的交集、差集、並集等。
集合的常用操作
創建
>>> a = set(‘abcde‘) #字符串創建 >>> print(a) {‘b‘, ‘d‘, ‘e‘, ‘c‘, ‘a‘} >>> b = set([‘ab‘,‘cd‘,‘ef‘,‘gh‘]) #列表創建 >>> print(b) {‘ab‘, ‘ef‘, ‘gh‘, ‘cd‘}
去重
>>> list1 = [1,2,3,4,5,4,3,2,1] >>> list1 [1, 2, 3, 4, 5, 4, 3, 2, 1] >>> set1 = set(list1) >>> set1 {1, 2, 3, 4, 5}
增加
{1, 2, 3, 4, 5} >>> set1.add(6) >>> set1 {1, 2, 3, 4, 5, 6} >>> set1.add([8,7,9]) #不可直接加列表 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: ‘list‘ >>> set1.add(a) #不可直接加集合 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unhashable type: ‘set‘ >>> set1.add(‘a‘) >>> set1 {1, 2, 3, 4, 5, 6, ‘a‘}
>>> set1.update([6,7,8]) >>> set1 {1, 2, 3, 4, 5, 6, 7, 8, ‘a‘} >>> set1.update(‘b‘) >>> set1 {1, 2, 3, 4, 5, 6, 7, 8, ‘b‘, ‘a‘} >>> set1.update(9) #update跟的必須是iterable Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: ‘int‘ object is not iterable
刪除
>>> set1.remove(8) >>> set1 {1, 2, 3, 4, 5, 6, 7, ‘b‘, ‘a‘} >>> set1.remove([6,7]) Traceback (most recent call last): #不能直接跟列表進行刪除 File "<stdin>", line 1, in <module> TypeError: unhashable type: ‘list‘
>>> set2 {1, 2, 3, 4, 5, 6, 7, ‘b‘, ‘a‘} >>> set2.pop() #彈出集合中任意一個元素 1 >>> set2 {2, 3, 4, 5, 6, 7, ‘b‘, ‘a‘} >>> set2.discard(3) #刪除一個元素,該元素不存在也不會報錯 >>> set2.discard(3) >>> set2 {2, 4, 5, 6, 7, ‘b‘, ‘a‘}
復制
>>> set1 {1, 2, 3, 4, 5, 6, 7, ‘b‘, ‘a‘} >>> set2 = set1.copy() >>> set2 {1, 2, 3, 4, 5, 6, 7, ‘b‘, ‘a‘}
集合內置方法
參考鏈接:http://blog.csdn.net/jasonLee_lijiaqi/article/details/79307119
Python基礎8-集合