欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python集合set()使用的方法詳解

 更新時(shí)間:2022年03月18日 16:10:45   作者:不瘦8斤的妥球球餅  
這篇文章主要為大家詳細(xì)介紹了Python集合set()使用的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

在python3中按數(shù)據(jù)類型的可變與不可變大致分為如下幾種類型:

  • 不可變數(shù)據(jù)(3個(gè)):Number(數(shù)字)、String(字符串)、Tuple(元組);
  • 可變數(shù)據(jù)(3個(gè)):List(列表)、Dictionary(字典)、Set(集合)。

1.集合的特點(diǎn)

1.無序不重復(fù)沒有重復(fù)的元素,且元素?zé)o序存放(故集合沒有下標(biāo)和切片),set的只要作用就是用來給數(shù)據(jù)去重。

2.使用時(shí)為 { },與字典區(qū)分:當(dāng)花括號(hào)里的元素不是鍵值對(duì)的時(shí)候?yàn)榧稀?/p>

3.集合的底層其實(shí)是通過字典來封裝的

2.set的建立

可以使用大括號(hào) { } 或者 set() 函數(shù)創(chuàng)建集合,但是注意如果創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)閧}是用來表示空字典類型的。

1.用set()函數(shù)創(chuàng)建set集合

person2 = set(("hello","jerry",133,11,133,"jerru")) #只能傳入一個(gè)參數(shù),可以是list,tuple等 類型
print(len(person2))
print(person2)
'''
5
{133, 'jerry', 11, 'jerru', 'hello'}
'''

2.add()

a=set()
a.add("a")
a.add("b")
print(a)

3.用{}創(chuàng)建set集合??誷et集合用set()函數(shù)表示,不可a={}。

person ={"student","teacher","babe",123,321,123} #同樣各種類型嵌套,可以賦值重復(fù)數(shù)據(jù),但是存儲(chǔ)會(huì)去重
print(len(person))  #存放了6個(gè)數(shù)據(jù),長度顯示是5,存儲(chǔ)是自動(dòng)去重
print(person) #但是顯示出來則是去重的
'''
5
{321, 'teacher', 'student', 'babe', 123}
'''
#空set集合用set()函數(shù)表示
person1 = set() #表示空set,不能用person1={}
print(len(person1))
print(person1)
'''
0
set()
'''

4.set集合的轉(zhuǎn)化

a=["awe","weg","dawqgg"]
c=set(a)
print(c)
b="chenshuagege"
d=set(b)
print(d)
al=("233","34455")
aw=set(al)
print(al)

3.常見使用注意事項(xiàng)

#set對(duì)字符串也會(huì)去重,因?yàn)樽址畬儆谛蛄小?
str1 = set("abcdefgabcdefghi")
str2 = set("abcdefgabcdefgh")
print(str1,str2)
print(str1 - str2) #-號(hào)可以求差集
print(str2 - str1)  #空值
#print(str1 + str2)  #set里不能使用+號(hào)
====================================================================
{'d', 'i', 'e', 'f', 'a', 'g', 'b', 'h', 'c'} {'d', 'e', 'f', 'a', 'g', 'b', 'h', 'c'}
{'i'}
set()

4.set的常用方法

4.1 set集合的增刪改查操作

  • add 用于加入元素
  • update 用于集合的合并
  • remove 當(dāng)移除一個(gè)集合里沒有的元素時(shí),報(bào)錯(cuò)
  • discard 當(dāng)移除一個(gè)集合里沒有的元素時(shí),不會(huì)報(bào)錯(cuò)
  • del 僅可對(duì)集合本身使用,不可用于元素,因?yàn)樵卦诩侠餅榛靵y排放,無下標(biāo)
  • clear 清空集合,留下空集合
  • pop 隨機(jī)刪除集合里的一個(gè)元素
#1.給set集合增加數(shù)據(jù)
person ={"student","teacher","babe",123,321,123}
person.add("student") #如果元素已經(jīng)存在,則不報(bào)錯(cuò),也不會(huì)添加,不會(huì)將字符串拆分成多個(gè)元素,區(qū)別update
print(person)
person.add((1,23,"hello")) #可以添加元組,但不能是list
print(person)
'''
{321, 'babe', 'teacher', 'student', 123}
{(1, 23, 'hello'), 321, 'babe', 'teacher', 'student', 123}
'''
# update用于集合的合并,可以把多個(gè)集合添加到一個(gè)集合里面??梢詉terar的數(shù)據(jù)都可以添加成set集合
person.update("abc")#使用update不能添加字符串,會(huì)拆分
print(person)  #會(huì)將字符串拆分成a,b,c三個(gè)元素
'''
{321, 1, 3, 'b', 'c', 'teacher', (1, 23, 'hello'), 'a', 'babe', 'student', 123}
'''
set1 = set()
set1.add('武動(dòng)乾坤')
set2 = {'jsy', '稻香', '愛的代價(jià)', '大碗寬面'}
set2.update(set1)
print(set2)
'''
{'大碗寬面', 'jsy', '愛的代價(jià)', '稻香', '武動(dòng)乾坤'}
'''
#2.從set里刪除數(shù)據(jù)
person.remove("student")#按元素去刪除
print(person)
#print("student")如果不存在 ,會(huì)報(bào)錯(cuò)。
'''
{321, 1, 3, 'c', 'b', (1, 23, 'hello'), 'teacher', 'babe', 'a', 123}
'''
person.discard("student")#功能和remove一樣,好處是沒有的話,不會(huì)報(bào)錯(cuò)
ret = person.pop() #在list里默認(rèn)刪除最后一個(gè),在set里隨機(jī)刪除一個(gè)。
print(person)
print(ret) #pop()返回的是被刪除掉的那一項(xiàng)
'''
{1, 3, (1, 23, 'hello'), 'teacher', 'b', 'a', 'babe', 123, 'c'}
'''
#3.更新set中某個(gè)元素,因?yàn)槭菬o序的,所以不能用角標(biāo)
#所以一般更新都是使用remove,然后在add
#4.查詢是否存在,無法返回索引,使用in判斷
if "teacher" in person:
    print("true")
else:
    print("不存在")
'''
true
'''
#5.終極大招:直接清空set
print(person)
person.clear()
print(person)
'''
set()
'''

4.2 其它用法

交 并 差集操作交集 intersection;并集 union;差集 difference
可用運(yùn)算符表示交集,并集,差集交集 & 并集 | 差集 -

#取兩者的交集
b={1,23}
a={23,5}
ret=b.intersection(a)
print(ret)
#取兩者的交集,intersection_update會(huì)改變b的內(nèi)容
b={1,23}
a={23,5}
b.intersection_update(a)
print(b)
#union是把兩個(gè)set集合合起來
a={"a","b","c"}
b={"a","wa"}
wt=a.union(b)
print(wt)
#difference表示的意思是a中的內(nèi)容b是沒有的,但是這個(gè)不會(huì)修改a自身的值,而是付給ret了
a={"12","14","234"}
b={"12","23"}
ret=a.difference(b)
print(ret)
#difference_update表示的意思是a中的內(nèi)容b是沒有的,執(zhí)行完,會(huì)修改a的內(nèi)容
a={"12","14","234"}
b={"12","23"}
a.difference_update(b)
print(a)
#symmetric_difference為把兩個(gè)set集合里相同的內(nèi)容當(dāng)作邊然后取這邊兩邊的內(nèi)容
a={"a","b","c"}
b={"a","wa"}
ret=a.symmetric_difference(b)
print(ret)
a.symmetric_difference(b)
print(a)
#可用運(yùn)算符表示交集,并集,差集
set2 = {1, 2, 3, 4, 5}
set3 = {3, 4, 5, 6, 7, 8, 9} 
print(set2 & set3)  # 交集符號(hào)  &
print(set2 | set3)  # 并集符號(hào) |
print(set2 - set3)  # 差集符號(hào) -
b={1,23}
a={23,5}
#如果a與b有集合的話,就返回false;如果沒有集合的話,就返回true
ret=b.isdisjoint(a)
print(ret)
b={1,23,5}
a={23,5}
#issuperset說明b是否是a的父親,如果是就輸出true,如果不是輸出false
ret=b.issuperset(a)
print(ret)
b={1,23,5}
a={23,5}
#b是否是a的子,如果是就輸出true,如果不是就輸出false
ret=b.issubset(a)
print(ret)

5.列表,元組,字典,集合 

  • list: 允許重復(fù),有序,有下標(biāo),可切片
  • tuple: 允許重復(fù),里面元素不能進(jìn)行增刪改,只能查看
  • dict: 字典里的元素以鍵值對(duì)的形式存在 鍵:唯一性 值:可以重復(fù)
  • set: 元素不允許重復(fù),且具有無序性

5.1 它們之間的類型轉(zhuǎn)換

1.列表,元組,集合,此三者均可相互轉(zhuǎn)

list----->tuple,set 列表轉(zhuǎn)集合時(shí),注意不能有重復(fù)元素,否則長度改變

tuple----->list,set

set----->list,tuple

2.當(dāng)字典參與的轉(zhuǎn)換時(shí),需特殊對(duì)待

dict----->list,tuple 僅能將字典的鍵轉(zhuǎn)換,不能將值轉(zhuǎn)換

list----->dict 列表內(nèi)必須是列表或是元組,且其中只有兩個(gè)元素時(shí),可轉(zhuǎn)

list = [['a', {1}], ('', 2), ('c', 3)]
print(dict(list))

輸出:

{‘a’: {1}, ‘’: 2, ‘c’: 3}

5.2 集合和列表方法上的區(qū)別

正是由于集合的無序性,沒有下標(biāo),故在方法上與列表有些差異。

  • append(添加元素) extend(實(shí)現(xiàn)列表的拼接)
  • insert(在某一下標(biāo)插入元素) ----->listadd(添加元素) update(兩個(gè)集合的合并) ---->set

總結(jié)

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容! 

相關(guān)文章

  • Cpy和Python的效率對(duì)比

    Cpy和Python的效率對(duì)比

    這篇文章主要介紹了Cpy和Python的效率對(duì)比,本文用一個(gè)循環(huán) 100000000 遍的代碼對(duì)比了Cpy和Python運(yùn)行效率測(cè)試,需要的朋友可以參考下
    2015-03-03
  • Python零基礎(chǔ)入門學(xué)習(xí)之輸入與輸出

    Python零基礎(chǔ)入門學(xué)習(xí)之輸入與輸出

    在之前的編程中,我們的信息打印,數(shù)據(jù)的展示都是在控制臺(tái)(命令行)直接輸出的,信息都是一次性的沒有辦法復(fù)用和保存以便下次查看,今天我們將學(xué)習(xí)Python的輸入輸出,解決以上問題
    2019-04-04
  • python利用elaphe制作二維條形碼實(shí)現(xiàn)代碼

    python利用elaphe制作二維條形碼實(shí)現(xiàn)代碼

    條形碼的應(yīng)用將會(huì)越來越廣泛,看到了一篇文章,寫的挺好的!用手機(jī)拍二維碼,查二維碼確實(shí)很爽!這將成為一種潮流
    2012-05-05
  • Python堆排序原理與實(shí)現(xiàn)方法詳解

    Python堆排序原理與實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了Python堆排序原理與實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了Python堆排序的概念、原理、實(shí)現(xiàn)方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • python3中zip()函數(shù)使用詳解

    python3中zip()函數(shù)使用詳解

    zip函數(shù)接受任意多個(gè)可迭代對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)tuple,然后返回一個(gè)可迭代的zip對(duì)象.這個(gè)可迭代對(duì)象可以使用循環(huán)的方式列出其元素,若多個(gè)可迭代對(duì)象的長度不一致,則所返回的列表與長度最短的可迭代對(duì)象相同.
    2018-06-06
  • python引入導(dǎo)入自定義模塊和外部文件的實(shí)例

    python引入導(dǎo)入自定義模塊和外部文件的實(shí)例

    下面小編就為大家?guī)硪黄猵ython引入導(dǎo)入自定義模塊和外部文件的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-07-07
  • python監(jiān)控文件或目錄變化

    python監(jiān)控文件或目錄變化

    這篇文章主要為大家詳細(xì)介紹了python監(jiān)控文件或目錄變化的實(shí)現(xiàn)代碼,感興趣的小伙伴們可以參考一下
    2016-06-06
  • python用opencv 圖像傅里葉變換

    python用opencv 圖像傅里葉變換

    這篇文章主要介紹了python用opencv 圖像傅里葉變換的方法,幫助大家更好的利用python處理圖片,感興趣的朋友可以了解下
    2021-01-01
  • Django發(fā)送郵件功能實(shí)例詳解

    Django發(fā)送郵件功能實(shí)例詳解

    在本篇文章里小編給大家整理了關(guān)于Django發(fā)送郵件功能的詳細(xì)內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-09-09
  • Python中itertools的用法詳解

    Python中itertools的用法詳解

    循環(huán)器(iterator)是對(duì)象的容器,包含有多個(gè)對(duì)象。這篇文章主要介紹了python itertools用法,需要的朋友可以參考下
    2020-02-02

最新評(píng)論