python-集合類型-基礎數據類型整理

python-集合類型-基礎數據類型整理


為了方便大家拷貝筆記,本文采用md源碼格式


[toc]

# set 集合

- 作用:關係運算,去重

- 定義集合:{}內用逗號分隔每個元素都必須為**不可變類型**,元素不能重複,無序,一定是不能使用list,dict

## add

>add(self, *args, **kwargs) 添加,如果元素已經存在,這不起作用

```

E = {'a','b'}

E.add('c')

print(E)

結果:{'a', 'b', 'c'}

```

## clear

>clear(self, *args, **kwargs)

清空

```

E = {'a','b'}

E.clear()

print(E)

結果:set()

```

## copy

>copy(self, *args, **kwargs)

拷貝

```

E = {'a','b'}

v = E.copy()

print(v)

結果:{'b', 'a'}

```

## pop

>pop(self, *args, **kwargs)

隨機拿走一個元素,並取值,如果該集合為空,則引發KeyError

```

E = {'a','b','v'}

v = E.pop()

print(v)

結果:v

print(E)

結果:{'a','b'}

```

## remove

>remove(self, *args, **kwargs)

移除,如果元素不是成員,則引發KeyError。

```

E = {'a','b','v'}

E.remove('a')

print(E)

結果:{'b','v'}

```

## discard (移除)

>discard(self, *args, **kwargs) 移除,如果元素不是成員,則什麼都不做。

```

E = {"a",'b','v'}

E.discard('a')

print(E)

結果:{'b','v'}

```

## update

>update(self, *args, **kwargs)

批量添加,有相同的部分忽略

```

s1 = {'a','b','v'}

s2 = {'a','b','1'}

s1.update(s2)

print(s1)

結果:{'a','b','1','v'}

```

## difference 差集(-)

>difference(self, *args, **kwargs)

s1中存在,s2中不存在

```

s1 = {"a",'b','v','1','2'}

s2 = {"a",'b','v','3'}

v = s1.difference(s2)

print(s1 - s2) #可以使用 -

print(v)

```

## difference_update

>difference_update(self, *args, **kwargs)

s1中存在,s2中不存在,然後對s1清空,再重新複製

```

s1 = {"a",'b','v','1','2'}

s2 = {"a",'b','v','3'}

s1.difference_update(s2)

print(s1)

結果:{'1', '2'}

```

## intersection 交集(&)

>intersection(self, *args, **kwargs)

交集

```

s1 = {"a",'b','v'}

s2 = {"1",'b','v'}

v = s1.intersection(s2)

print(v)

print( s1 & s2)

{'v', 'b'}

{'v', 'b'}

```

## intersection_update

>intersection_update(self, *args, **kwargs)

取交集,然後對s1清空,然後在重新複製

```

s1 = {"a",'b','v'}

s2 = {"1",'b','v'}

s1.intersection_update(s2)

print(s1)

結果:{'b','v'}

```

## symmetric_difference 對稱差集(^)

>symmetric_difference(self, *args, **kwargs)

兩集合不同的元素

```

s1 = {'a','b','v'}

s2 = {'a','b','1'}

v = s1.symmetric_difference(s2)

print(v)

print(s1 ^ s2)

{'v', '1'}

{'v', '1'}

```

## symmetric_difference_update

>symmetric_difference_update(self, *args, **kwargs)

兩集合不同的元素,然後對s1清空,然後在重新複製

```

s1 = {'a','b','v'}

s2 = {'a','b','1'}

s1.symmetric_difference_update(s2)

print(s1)

結果:{'1','v'}

```

## union 並集(|)

>union(self, *args, **kwargs)

並集

```

s1 = {'a','b','v'}

s2 = {'a','b','1'}

v = s1.union(s2)

print(v)

print(s1 | s2)

{'a', 'b', 'v', '1'}

{'a', 'b', 'v', '1'}

```

## isdisjoint 沒有交集

>isdisjoint(self, *args, **kwargs)

是否沒有交集

```

s1 = {"a",'b','v'}

s2 = {"1",'b','v'}

v = s1.isdisjoint(s2)

print(v)

結果:False

```

## issubset 子集(<=)

>issubset(self, *args, **kwargs)

s1 是否是 s2的子集

```

s1 = {'b','v'}

s2 = {"1",'b','v'}

v = s1.issubset(s2)

print(v)

print(s1 <= s2)

結果:True

結果:True

```

## issuperset 父集(> >=)

>issuperset(self, *args, **kwargs)

s1 是否是 s2的父集

```

s1 = {'b','v'}

s2 = {"1",'b','v'}

v = s1.issuperset(s2)

print(v)

print(s1 > s2)

結果:False

結果:False

```


分享到:


相關文章: