【Python3_基础系列_006】Python3-set-集合
一、set集合的方法
set不是特別常用,但是set的一些特性可以方便處理一些特殊情況。
集合(set)是一個(gè)無序不重復(fù)元素的序列。
可以使用大括號?{ }?或者?set()?函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用?set()?而不是?{ },因?yàn)?{ }?是用來創(chuàng)建一個(gè)空字典。
創(chuàng)建格式:
parame = {value01,value02,...} 或者 set(value) >>>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >>> print(basket) # 這里演示的是去重功能 {'orange', 'banana', 'pear', 'apple'} >>> 'orange' in basket # 快速判斷元素是否在集合內(nèi) True >>> 'crabgrass' in basket False >>> # 下面展示兩個(gè)集合間的運(yùn)算. ... >>> a = set('abracadabra') >>> b = set('alacazam') >>> a {'a', 'r', 'b', 'c', 'd'} >>> a - b # 集合a中包含元素 {'r', 'd', 'b'} >>> a | b # 集合a或b中包含的所有元素 {'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'} >>> a & b # 集合a和b中都包含了的元素 {'a', 'c'} >>> a ^ b # 不同時(shí)包含于a和b的元素 {'r', 'd', 'b', 'm', 'z', 'l'} 類似列表推導(dǎo)式,同樣集合支持集合推導(dǎo)式(Set comprehension):
>>>a = {x for x in 'abracadabra' if x not in 'abc'} >>> a {'r', 'd'}二、集合的基本操作
1、添加元素
語法格式如下:
s.add( x ) 將元素 x 添加到集合 s 中,如果元素已存在,則不進(jìn)行任何操作。
>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.add("Facebook") >>> print(thisset) {'Taobao', 'Facebook', 'Google', 'Runoob'}還有一個(gè)方法,也可以添加元素,且參數(shù)可以是列表,元組,字典等,語法格式如下:
s.update( x ) x 可以有多個(gè),用逗號分開。
>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.update({1,3}) >>> print(thisset) {1, 3, 'Google', 'Taobao', 'Runoob'} >>> thisset.update([1,4],[5,6]) >>> print(thisset) {1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'} >>>2、移除元素
語法格式如下:
s.remove( x ) 將元素 x 添加到集合 s 中移除,如果元素不存在,則會(huì)發(fā)生錯(cuò)誤。
>>>thisset = set(("Google", "Runoob", "Taobao")) >>>thisset.remove("Taobao") >>>print(thisset) {'Google', 'Runoob'} >>>thisset.remove("Facebook") # 不存在會(huì)發(fā)生錯(cuò)誤 Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'Facebook' >>>此外還有一個(gè)方法也是移除集合中的元素,且如果元素不存在,不會(huì)發(fā)生錯(cuò)誤。格式如下所示:
s.discard( x ) >>>thisset = set(("Google", "Runoob", "Taobao")) >>>thisset.discard("Facebook") # 不存在不會(huì)發(fā)生錯(cuò)誤 >>>print(thisset) {'Taobao', 'Google', 'Runoob'} 我們也可以設(shè)置隨機(jī)刪除集合中的一個(gè)元素,語法格式如下:
s.pop() >>>thisset = set(("Google", "Runoob", "Taobao", "Facebook")) >>>thisset.pop() 'Taobao' >>>print(thisset) {'Facebook', 'Google', 'Runoob'} >>> 3、計(jì)算集合元素個(gè)數(shù)
語法格式如下:
len(s) 計(jì)算集合 s 元素個(gè)數(shù)。
>>>thisset = set(("Google", "Runoob", "Taobao")) >>>len(thisset) 34、清空集合
語法格式如下:
s.clear() 清空集合 s。
>>>thisset = set(("Google", "Runoob", "Taobao")) >>> thisset.clear() >>> print(thisset) set()4、判斷元素是否在集合中存在
語法格式如下:
x in s 判斷元素 s 是否在集合 x 中存在,存在返回 True,不存在返回 False。
>>>thisset = set(("Google", "Runoob", "Taobao")) >>> "Runoob" in thisset True >>> "Facebook" in thisset False >>>三、面試題
1.列表排重?a=[1,2,3,4,5,6,7,5,3,2,1,3,43,5]
>>> a=[1,2,3,4,5,6,7,5,3,2,1,3,43,5]
>>> set(a)
{1, 2, 3, 4, 5, 6, 7, 43}
四、list類解析
>>> help(list)
Help on class list in module builtins:
class list(object)
| list() -> new empty list
| list(iterable) -> new list initialized from iterable's items? (注意這里是可迭代的對象,在python中查看對象 dir(obj、class) 如果包含__iter__方法,就是可迭代對象(可迭代類))
|
| Methods defined here:
|
| __add__(self, value, /)
| Return self+value.
|
| __contains__(self, key, /)
| Return key in self.
|
| __delitem__(self, key, /)
| Delete self[key].
|
| __eq__(self, value, /)
| Return self==value.
|
| __ge__(self, value, /)
| Return self>=value.
|
| __getattribute__(self, name, /)
| Return getattr(self, name).
|
| __getitem__(...)
| x.__getitem__(y) <==> x[y]
|
| __gt__(self, value, /)
| Return self>value.
|
| __iadd__(self, value, /)
| Implement self+=value.
|
| __imul__(self, value, /)
| Implement self*=value.
|
| __init__(self, /, *args, **kwargs)
| Initialize self. See help(type(self)) for accurate signature.
|
| __iter__(self, /)
| Implement iter(self).
|
| __le__(self, value, /)
| Return self<=value.
|
| __len__(self, /)
| Return len(self).
|
| __lt__(self, value, /)
| Return self<value.
|
| __mul__(self, value, /)
| Return self*value.n
|
| __ne__(self, value, /)
| Return self!=value.
|
| __new__(*args, **kwargs) from builtins.type
| Create and return a new object. See help(type) for accurate signature.
|
| __repr__(self, /)
| Return repr(self).
|
| __reversed__(...)
| L.__reversed__() -- return a reverse iterator over the list
|
| __rmul__(self, value, /)
| Return self*value.
|
| __setitem__(self, key, value, /)
| Set self[key] to value.
|
| __sizeof__(...)
| L.__sizeof__() -- size of L in memory, in bytes
|
| append(...)
| L.append(object) -> None -- append object to end
|
| clear(...)
| L.clear() -> None -- remove all items from L
|
| copy(...)
| L.copy() -> list -- a shallow copy of L
|
| count(...)
| L.count(value) -> integer -- return number of occurrences of value
|
| extend(...)
| L.extend(iterable) -> None -- extend list by appending elements from the iterable
|
| index(...)
| L.index(value, [start, [stop]]) -> integer -- return first index of value.
| Raises ValueError if the value is not present.
|
| insert(...)
| L.insert(index, object) -- insert object before index
|
| pop(...)
| L.pop([index]) -> item -- remove and return item at index (default last).
| Raises IndexError if list is empty or index is out of range.
|
| remove(...)
| L.remove(value) -> None -- remove first occurrence of value.
| Raises ValueError if the value is not present.
|
| reverse(...)
| L.reverse() -- reverse *IN PLACE*
|
| sort(...)
| L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
|
| ----------------------------------------------------------------------
| Data and other attributes defined here:
|
| __hash__ = None
轉(zhuǎn)載于:https://www.cnblogs.com/forfreewill/articles/9281008.html
總結(jié)
以上是生活随笔為你收集整理的【Python3_基础系列_006】Python3-set-集合的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 驾驶分多少钱一分啊?
- 下一篇: 记录一个比较完整的python项目分析架