0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python之集合set的基本步驟分享

冬至配餃子 ? 來源:繆斯之子 ? 作者:肖新苗 ? 2022-08-23 10:31 ? 次閱讀

1.基本的增刪改查, 再加上discard和pop

def test_1():
# 增刪改查,discard,
set1 = {1, 2}
set1.add(3)
assert {1, 2, 3} == set1, 'add error'

set1.remove(2)
assert {1, 3} == set1, 'remove error'

set1.update({1, 4})
assert {1, 3, 4} == set1, 'update 1 error'

set1.update((5, ))
assert {1, 3, 4, 5} == set1, 'update 2 error'

e = 5 if 5 in set1 else None
assert e == 5, 'in error'

# 區(qū)別就是remove的元素在set當(dāng)中沒有的話會報錯,而discard不會
set1.discard(5)
assert {1, 3, 4} == set1, 'discart error'

res = set1.pop()
assert 1== res and {3,4} == set1, 'pop error'

2.difference[差],union[并],intersection[交],symmetric_difference[補]

def test_2():
# - | & ^, difference,union,intersection,symmetric_difference
set1 = {1, 2, 3}
set2 = {2, 3, 4}
setx = set1 - set2
assert {1} == setx, '- error'

setx = set1 | set2
assert {1, 2, 3, 4} == setx, '| error'

setx = set1 & set2
assert {2, 3} == setx, '& error'

setx = set1 ^ set2
assert {1, 4} == setx, '^ error'

setx = set1.difference(set2)
assert {1} == setx, '- error'

setx = set1.union(set2)
assert {1, 2, 3, 4} == setx, '| error'

setx = set1.intersection(set2)
assert {2, 3} == setx, '& error'

setx = set1.symmetric_difference(set2)
assert {1, 4} == setx, '^ error'

pass

3.set的構(gòu)造方法, in,enumerate

def test_3():
# 方法:set(p), in,enumerate
set1 = set()
assert set() == set1, 'set() error'

set1 = set([1, 2])
assert {1, 2} == set1, '[1,2] error'

set1 = set((1, ))
assert {1} == set1, r'{1} error'

set1 = set('abc')
assert {'a', 'b', 'c'} == set1, 'abc error'

set_indexs = [i for i, v in enumerate(set1)]
assert [0, 1, 2] == set_indexs, 'enumerate error'
pass

4.sorted

def test_4():
# sorted
set1 = {'b', 'a', 'c'}
sorted(set1)
assert {'a', 'b', 'c'} == set1, 'sorted error'
pass

5.淺復(fù)制與深復(fù)制

import copy

class Person:

def __init__(self, a: int, b: int):
self.a = a
self.b = b

pass


def test_5():
# 淺復(fù)制 和 深度復(fù)制
set1 = {1, Person(2, 3)}
set2 = {i for i in set1}
set2.update({4})
assert not {4}.issubset(set1), 'copy 1 error'
assert {4}.issubset(set2), 'copy 2 error'

set2 = set1.copy()
for i in set2:
if type(i) == Person:
i.a = 4
p1: Person = [i for i in set1 if type(i) == Person][0]
p2: Person = [i for i in set2 if type(i) == Person][0]

assert 4 == p1.a, 'copy 3 error'
assert 4 == p2.a, 'copy 4 error'

set1 = {1, Person(2, 3)}
set2 = copy.deepcopy(set1)
for i in set2:
if type(i) == Person:
i.a = 4
p3: Person = [i for i in set1 if type(i) == Person][0]
p4: Person = [i for i in set2 if type(i) == Person][0]

assert 2 == p3.a, 'copy 3 error'
assert 4 == p4.a, 'copy 4 error'

pass


6.去重之后保證之前的順序

def test_6():
'''
set 去重,并且保證之前的順序
'''
list1 = [1, 2, 7, 2, 5]
list2 = list(set(list1))
assert [1, 2, 5, 7] == list2, 'set sort error'
list2.sort(key=list1.index)
assert [1, 2, 7, 5] == list2, 'set sort 2 error'


審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4768

    瀏覽量

    84376
  • ASSERT
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    7221
收藏 人收藏

    評論

    相關(guān)推薦

    AI訓(xùn)練的基本步驟

    AI(人工智能)訓(xùn)練是一個復(fù)雜且系統(tǒng)的過程,它涵蓋了從數(shù)據(jù)收集到模型部署的多個關(guān)鍵步驟。以下是對AI訓(xùn)練過程的詳細闡述,包括每個步驟的具體內(nèi)容,并附有相關(guān)代碼示例(以Python和scikit-learn庫為例)。
    的頭像 發(fā)表于 07-17 16:57 ?1553次閱讀

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的
    的頭像 發(fā)表于 07-11 10:11 ?654次閱讀

    python怎么運行程序

    Python是一種廣泛使用的編程語言,它的簡易和可讀性使得它成為初學(xué)者和專業(yè)開發(fā)人員的首選。在運行Python程序之前,您需要安裝Python解釋器,然后按照以下步驟進行操作。
    的頭像 發(fā)表于 11-24 09:25 ?2465次閱讀

    python如何遍歷列表并提取

    是一種有序的可變集合,可以容納任意類型的元素。在Python中,列表用方括號[ ]表示,其中的元素可以通過索引進行訪問。索引是從0開始,表示列表中元素的位置。 在遍歷列表時,可以使用for循環(huán)配合列表的長度來遍歷每一個元素。下面是一個示例代碼,展示了如何遍歷
    的頭像 發(fā)表于 11-23 15:55 ?1242次閱讀

    python變量命名規(guī)則

    Python是一種高級編程語言,廣泛應(yīng)用于軟件開發(fā)、數(shù)據(jù)分析和科學(xué)計算等領(lǐng)域。在Python中,變量是用來存儲數(shù)據(jù)的容器,它們具有名稱以及與關(guān)聯(lián)的值。然而,變量的命名并不是隨意的,而是需要遵循一定
    的頭像 發(fā)表于 11-23 15:44 ?1163次閱讀

    python如何查看運行過程

    常用的方法來查看Python程序的運行過程。 使用print語句輸出信息: 最簡單的方法是在代碼中使用print語句來輸出信息。我們可以在程序的關(guān)鍵位置插入一些print語句,以便在運行過程中查看變量的取值和程序的執(zhí)行步驟。例如: x = 10 print( "x的值為:
    的頭像 發(fā)表于 11-22 11:13 ?1834次閱讀

    python寫完程序之后怎么運行

    Python程序的執(zhí)行流程有更深入的了解。 一、Python程序的基本結(jié)構(gòu) Python程序是由一系列的語句構(gòu)成,語句是指一行代碼或多行代碼組成的指令集合。一個
    的頭像 發(fā)表于 11-22 11:10 ?949次閱讀

    python中tuple的用法

    Python中的元組(tuple)是一種不可變的有序集合。與列表(list)類似,元組可以存儲任意類型的數(shù)據(jù),但是元組一旦創(chuàng)建就不能被修改。在Python中,元組是使用圓括號進行表示,其中的元素可以
    的頭像 發(fā)表于 11-21 16:27 ?895次閱讀

    python中的set類型

    Python中的set類型是一種無序、可變的集合數(shù)據(jù)類型,它的主要特點是不允許重復(fù)元素的存在。本文將詳盡、詳實、細致地介紹set類型的使用場景、常用操作以及與其他類型的比較等方面,以幫
    的頭像 發(fā)表于 11-21 16:25 ?786次閱讀

    python怎么定義空集合

    Python中,可以通過兩種方式來定義一個空集合: 使用大括號 {} 創(chuàng)建空集合 使用 set() 函數(shù)創(chuàng)建空集合 第一種方式是最常見的,
    的頭像 發(fā)表于 11-21 16:20 ?5032次閱讀

    python處理重復(fù)值的方法

    處理重復(fù)值是數(shù)據(jù)處理中常見的任務(wù)之一。在Python中,有幾種有效的方法可以處理重復(fù)值,包括使用集合、字典和pandas庫等。 使用集合 集合數(shù)據(jù)結(jié)構(gòu)是
    的頭像 發(fā)表于 11-21 15:47 ?1227次閱讀

    python里item的用法

    item是Python中一個非常重要的概念,它可以用于多種數(shù)據(jù)結(jié)構(gòu)和算法的實現(xiàn)。在Python中,item通常用于表示一個集合或序列中的一個元素。本文將詳細介紹item的用法,并探討它在列表、字典
    的頭像 發(fā)表于 11-21 15:09 ?3396次閱讀

    Python中Excel轉(zhuǎn)PDF的實現(xiàn)步驟

    將Excel文件轉(zhuǎn)換為PDF可以方便儲存表格數(shù)據(jù),此外在打印或共享文檔時也能確保表格樣式布局等在不同設(shè)備和操作系統(tǒng)上保持一致。今天給大家分享一個使用第三方Python庫Spire.XLS for Python 實現(xiàn)Excel轉(zhuǎn)PDF的簡單方法。
    的頭像 發(fā)表于 11-20 15:02 ?1022次閱讀
    <b class='flag-5'>Python</b>中Excel轉(zhuǎn)PDF的實現(xiàn)<b class='flag-5'>步驟</b>

    使用Python卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行圖像識別的基本步驟

    Python 卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像識別領(lǐng)域具有廣泛的應(yīng)用。通過使用卷積神經(jīng)網(wǎng)絡(luò),我們可以讓計算機從圖像中學(xué)習(xí)特征,從而實現(xiàn)對圖像的分類、識別和分析等任務(wù)。以下是使用 Python 卷積神經(jīng)網(wǎng)絡(luò)進行圖像識別的基本步驟。
    的頭像 發(fā)表于 11-20 11:20 ?5415次閱讀

    使用Redis的有序集合實現(xiàn)排行榜功能和Spring Boot集成

    Redis 的有序集合(Sorted Set)是一個基于分數(shù)(score)排序的數(shù)據(jù)結(jié)構(gòu),它在 Redis 中非常重要,常用于實現(xiàn)排行榜、近似計數(shù)器等功能。
    的頭像 發(fā)表于 11-20 10:15 ?716次閱讀