集合與深淺拷貝

2022-09-19 03:57:12 字數 2990 閱讀 2105

一、集合

1.定義

元素的集,同一集合下,元素不相同。集合有交集並集等操作。集合是可變的資料型別,但是集合內的元素必須是不可變的。

set1=                      #

集合內元素不重複

set2= #

集合內元素不可變

set3=set1 #

集合的定義可以用直接賦值

print

(set1)

print

(set2)

print

(set3)

#列印:##

#

2.操作

set1.add("

12") #

增加有add和update

print

(set1)

set2.update((4,7))

print

(set2)#列印

##

print(set1.pop() )  #

隨機刪除乙個元素,有返回值

print

(set1)

set2.remove((1,2)) #

刪除指定元素

print

(set2)

set3.clear()

#使成為空集

print

(set3,type(set3))

del set3 #

刪除集合#列印

#1##

#set()

#

查for i in

set1:

print(i) #

集合內元素也可以迭代,所以可以用for迴圈列印

#

求交集set1.add((3,2))

set4=set1 &set2

print

(set4)

set5=set1.intersection(set2)

print

(set5)#列印

##

#

求並集set6=set1.union(set2)

print

(set6)

#

#

求並集set6=set1.union(set2)

print

(set6)

#set7=set1 |set2

print

(set7)

#

#

求並集-交集(補集)

set8=

set9=

set10=set8 ^set9

print

(set10)

set11=set8.symmetric_difference(set9)

print

(set11)##

#

求乙個集合-交集

set12=set8-set9

print

(set12)

set13=set8.difference(set9)

print

(set13)##

#集合不可以加,但是可以減

#

判斷乙個集合是否是另乙個集合的子集或超集

print(set8 print(set10 print(set12 print(set8 >set13)

a=set8.issuperset(set12)

b=set8.issubset(set12)

c=set13.issuperset(set9)

d=set13.issubset(set9)

print

(a)print

(b)print

(c)print

(d)#

false

#false

#true

#true

#true

#false

#false

#false

#

利用集合的性質去重

li=[1,1,2,3,4,4,5,6,7,7]

print

(li,type(li))

se=set(li)

print

(se,type(se))

li=list(se)

print

(li,type(li))

#[1, 1, 2, 3, 4, 4, 5, 6, 7, 7] #

#[1, 2, 3, 4, 5, 6, 7]

二、深拷貝與淺拷貝

#

淺拷貝,只拷貝位址,樣本變了,拷貝內容也變了

listm=[1,2,3,4,5,6,6]

listx=listm

print

(listx)

print

(listm)

print(listx)

#

深拷貝,拷貝內容,樣本變了不影響拷貝內容

#但要記住import copy,才能呼叫深拷貝方法

import

copy

listy=copy.deepcopy(listm)

print

(listm)

print(listy)

#結果#

[1, 2, 3, 4, 5, 6, 6]

#[1, 2, 3, 4, 5, 6, 6, 9]

#[1, 2, 3, 4, 5, 6, 6, 9]

#[1, 2, 3, 4, 5, 6, 6, 9, 10]

#[1, 2, 3, 4, 5, 6, 6, 9]

Python之集合與深淺拷貝

一.集合 可變資料型別,但是元素必須是不可變的資料型別,無序,元素具有唯一性 add 給集合新增乙個元素 clear 清空乙個集合 set copy 返回乙個淺拷貝集合 difference set1 set2 set1.difference set2 返回set1有set2中沒有的元素組成的集合 ...

set集合 ,深淺拷貝

一 之前內容的補充 1.join 將列表轉換成字串 2.split 將字串轉換成列表 3列表和字典在進行for迴圈時是不可以刪除的 準確的說是刪除的不徹底 刪除操作需要先建立乙個新的空列表,把老列表裡的元素迴圈 然後給到新的列表,然後再迴圈新的列表,刪除舊的列表.列表的刪除用的是remove,字典用...

set集合 深淺拷貝

1.基礎資料型別補充 1.把列表用join轉換成字串 li 我是誰 我在哪 我在幹什麼 s join li print s 我是誰 我在哪 我在幹什麼 li 成龍演的我是誰 s join li print s 成 龍 演 的 我 是 誰 split 可以把字串切割成列表 s 成 龍 演 的 我 是 ...