1、集合概念
Python中的集合,是一個無序的、沒有重復項的集。它支持數(shù)學概念上的集合操作,如交集、并集、補集和差集。集合是可變的,可以在其中添加或刪除項。集合用花括號“{}”括起來,并用逗號“,”來分隔其中的項。
2、創(chuàng)建集合
可以使用花括號“{}”創(chuàng)建集合,集合會自動去除重復的項。下面的集合包含了幾種用字符串表示的水果:
- >>> # 創(chuàng)建fruits集合時,'apple'出現(xiàn)了兩次
- >>> fruits = {'apple', 'banana', 'watermelon', 'strawberry', 'apple'}
- >>> fruits # 查看fruits集合,'apple'只有保留了一個
- {'apple', 'strawberry', 'banana', 'watermelon'}
與列表、元組、字典一樣,集合也可以用工廠函數(shù)set()來創(chuàng)建。set()函數(shù)的參數(shù)要么為空,要么為可迭代對象(如列表、元組和字符串):
- >>> fruits = set(['apple', 'banana', 'watermelon', 'strawberry', 'apple']) # 以列表為參數(shù)創(chuàng)建集合
- >>> fruits
- {'apple', 'strawberry', 'banana', 'watermelon'}
- >>> numbers = set((1, 2, 3, 3, 2, 4)) # 以元組為參數(shù)創(chuàng)建集合
- >>> numbers
- {1, 2, 3, 4}
- >>> letters = set('banana') # 以字符串為參數(shù)創(chuàng)建集合
- >>> letters
- {'b', 'a', 'n'}
如果想要創(chuàng)建一個空集合,那么使用空的花括號“{}”是行不通的,因為這樣創(chuàng)建的是一個空字典:
- >>> empty = {}
- >>> empty
- {}
- >>> type(empty)
- <class 'dict'>
創(chuàng)建空集合的唯一方式就是使用不包含任何參數(shù)的set()函數(shù):
- >>> empty = set()
- >>> empty # 空集合表示為set()
- set()
- >>> type(empty)
- <class 'set'>
3、集合添加項
集合是可變的數(shù)據(jù)類型,在創(chuàng)建集合之后,可以使用集合的add()方法向其添加項:
- >>> numbers = {1, 2, 3}
- >>> numbers.add(4) # 向numbers集合中添加整數(shù)4
- >>> numbers
- {1, 2, 3, 4}
- >>> numbers.add('five') # 向numbers集合中添加字符串'five'
- >>> numbers
- {1, 2, 3, 4, 'five'}
- >>> numbers.add((5, 6, 7)) # 向numbers集合中添加元組(5, 6, 7)
- >>> numbers
- {1, 2, 3, 4, (5, 6, 7), 'five'}
如果向某個集合中添加已經(jīng)存在的項,那么什么也不會發(fā)生:
- >>> fruits = {'apple', 'strawberry', 'banana', 'watermelon'}
- >>> fruits
- {'banana', 'apple', 'watermelon', 'strawberry'}
- >>> fruits.add('apple') # 添加已經(jīng)存在的項'apple'
- >>> fruits # fruits集合并沒有改變
- {'banana', 'apple', 'watermelon', 'strawberry'}
也可以使用集合的update()方法向集合中添加項,參數(shù)必須是可迭代對象,如列表、字符串或另一個集合。類似于列表的append()方法和extend()方法,但區(qū)別是集合的update()方法總是會將可迭代對象“展開”:
- >>> numbers = {1}
- >>> numbers
- {1}
- >>> numbers.update((5, 6, 7))
- >>> numbers # 可以看出update()方法和add()方法的區(qū)別
- {1, 5, 6, 7}
- >>> numbers.update({4, 5}, {6, 7, 8}) # 參數(shù)為兩個集合
- >>> numbers
- {1, 4, 5, 6, 7, 8}
4、集合刪除項
可以使用集合的remove()方法刪除某個集合中的指定項:
- >>> numbers = {1, 2, 3, 5, 7}
- >>> numbers.remove(1)
- >>> numbers
- {2, 3, 5, 7}
- >>> numbers.remove(3)
- >>> numbers
- {2, 5, 7}
如果試圖刪除集合中不存在的項,那么Python解釋器會報錯:
- >>> numbers = {1, 2, 3, 5, 7}
- >>> numbers.remove(4)
- Traceback (most recent call last):
- File "<stdin>", line 1, in <module>
- KeyError: 4
還可以使用集合的discard()方法來刪除項,它和remove()方法唯一的區(qū)別是,當試圖刪除不存在的項時,discard()方法并不會報錯,而是什么也不會發(fā)生:
- >>> numbers = {1, 2, 3, 5, 7}
- >>> numbers.discard(1)
- >>> numbers
- {2, 3, 5, 7}
- >>> numbers.discard(3)
- >>> numbers
- {2, 5, 7}
- >>> numbers.discard(4)
- >>> numbers # 什么也沒發(fā)生
- {2, 5, 7}
5、檢查某個項是否在集合中
集合的in操作符用于檢查指定項是否在集合中,not in操作符用于檢查指定項是否不在集合中:
- >>> numbers = {1, 2, 3, 5, 7}
- >>> 1 in numbers # 1在numbers集合中,返回True
- True
- >>> 3 in numbers # 3在numbers集合中,返回True
- True
- >>> 4 in numbers # 4不在numbers集合中,返回False
- False
- >>> 4 not in numbers # not in是in的反向操作
- True
6、查看集合的長度
集合的內(nèi)建函數(shù)len()用于查看集合的長度,即集合中項的個數(shù):
- >>> empty = set()
- >>> len(empty)
- 0
- >>> numbers = {1, 2, 3, 5, 7}
- >>> len(numbers)
- 5
>>本文地址:http://m.hqfphsz.com/zhuanye/2020/55734.html
聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?