python集合增刪改查,深拷貝淺拷貝

2022-05-02 16:21:10 字數 2404 閱讀 7173

集合是無序的,不重複的資料集合,它裡面的元素是可雜湊的(不可變型別),但是集合本身是不可雜湊(所以集合做不了字典的鍵)的。以下是集合最重要的兩點:

去重,把乙個列表變成集合,就自動去重了。

關係測試,測試兩組資料之前的交集、差集、並集等關係。

1、集合的建立:

set1 = set()

set2 =

print(set1,set2) #

2、集合的增加:

set1 = 

set1.add('景女神')

print(set1)

#update:迭代著增加

set1.update('a')

print(set1)

set1.update('老師')

print(set1)

set1.update([1,2,3])

print(set1)

3、集合的刪除:

set1 = 

set1.remove('alex') # 刪除乙個元素

print(set1)

set1.pop() # 隨機刪除乙個元素

print(set1)

set1.clear() # 清空集合

print(set1)

del set1 # 刪除集合

print(set1)

4、集合的交集(&或者intersection):

set1 = 

set2 =

print(set1 & set2) #

print(set1.intersection(set2)) #

5、集合的並集(| 或者 union)

set1 = 

set2 =

print(set1 | set2) #

print(set2.union(set1)) #

6、集合的差集(- 或者 difference)

set1 = 

set2 =

print(set1 - set2) #

print(set1.difference(set2)) #

7、集合的反交集(^ 或者 symmetric_difference)

set1 = 

set2 =

print(set1 ^ set2) #

print(set1.symmetric_difference(set2)) #

8、集合的子集與超集()

set1 = 

set2 =

print(set1 < set2)

print(set1.issubset(set2)) # 這兩個相同,都是說明set1是set2子集。

print(set2 > set1)

print(set2.issuperset(set1)) # 這兩個相同,都是說明set2是set1超集。

9、frozenset不可變集合,讓集合變成不可變型別。

s = frozenset('barry')

print(s,type(s)) # frozenset()

1、賦值運算

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

l2=l1

print(l1) #[1, 2, 3, [4, 5], 6]

print(l2) #[1, 2, 3, [4, 5], 6]

print(l1) #[1, 2, 3, [4, 5, 7], 6]

print(l2) #[1, 2, 3, [4, 5, 7], 6]

可見,賦值運算為淺拷貝,l1與l2的記憶體位址相同

2,淺拷貝copy

對於淺copy來說,第一層建立的是新的記憶體位址,而從第二層開始,指向的都是同乙個記憶體位址,所以,對於第二層以及更深的層數來說,保持一致性 

3,深拷貝deepcopy

import copy

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

l2=copy.deepcopy(l1)

print(l1,id(l1)) #[1, 2, 3, [4, 5], 6] 45650632

print(l2,id(l2)) #[1, 2, 3, [4, 5], 6] 45651912

print(l1,id(l1[3])) #[1, 2, 3, [4, 5, 7], 6] 45650440

print(l2,id(l2[3])) #[1, 2, 3, [4, 5], 6] 45651848

對於深copy來說,兩個是完全獨立的,改變任意乙個的任何元素(無論多少層),另乙個絕對不改變。

python 增刪改查

lists aa aa 增lists.insert 0,aa 在索引為0的地方插入 aa lists.insert 5,aa 在索引為5的地方插入 aa 如果索引沒到5則插到尾部 刪lists.remove aa 刪除 第一遇到的 aa 從左向右 del lists 5 刪除指定索引的值 如果索引超...

Python 增刪改查

from pymysql import cursors from tools.config import config import random,string defcreatedatabase db config.db cur db.cursor cursor cursors.dictcurso...

java Set集合的增刪改查

set集合是無序且不可重複的,可以新增空.值進去.奇葩.set集合中的增添改查是類似於list中的,只不過不能新增到指定位置,因為set集合是無序的,也沒有get方法。歷遍元素只能使用迭代器或者for each來迴圈歷遍 具體方法為 增 add addall 刪 remove object remo...