python 002 資料型別(set)

2022-07-31 03:57:13 字數 2213 閱讀 3447

集合:set

特點:1)不同元素組成

2)無序

3)集合中元素必須是不可變型別

s=

print

(type(s))

output:

'set

'>s=set('

hello')

print

(s)output:

s=set(["

abc","

abc","sb"

])print

(s)output:

集合set的方法:

ss=s.copy()

print

(ss)

s.clear()

s.add(3)

s.pop()

s.remove("sb

")s.remove(

"dhdhdkddkkd

") #

刪除元素不存在會報錯

s.discard("

sbbbbb

") #

刪除元素不存在不會報錯

集合關係運算交、差、並集

python_1=['

lcg','

szw','

zjw'

]linux_1=['

lcg','

szw',"sb"

]p_s=set(python_1)

l_s=set(linux_1)

print

(p_s,l_s)

#求交集

print

(p_s.intersection(l_s))

print(p_s&l_s)

#求並集

print

(p_s.union(l_s))

print(p_s|l_s)

#求差集

print

(p_s.difference(l_s))

print("

差集:",p_s-l_s)

print

(l_s.difference(p_s))

print("

差集:",l_s-p_s)

#交叉補集

print('

交叉補集

',p_s.symmetric_difference(l_s))

print('

交叉補集

',p_s^l_s)

#difference_update求出差集後,並更新p_s

p_s.difference_update(l_s)

print(p_s)

其他方法:

#

isdisjoint如果兩個集合交集結果為空,則返回true

s1=s2=

print

(s1.isdisjoint(s2))

#issubset相當於s1<=s2即s1是s2的子集,issuperset相當於s1>=s2即s1是s2的父集

s1=s2=

print(s1.issubset(s2))#

s1是s2的子集

print(s2.issubset(s1))#

返回false

print(s2.issuperset(s1))#

s1是s2的父集

#update相當於將s2的值更新給s1

s1.update(s2)#

更新多個值,可傳入字典、列表

print

(s1)

s1.add(5)#

更新乙個值

s1.union(s2)#

不更新

frozenset定義為了不可變型別,沒有add等方法

s=frozenset('hello')

# s沒有add等方法

#實現簡單去重

names=['

wendy

','wendy

','xiaozhu']

s=set(names)

print(s)

#

將names變為之前的list,不過順序變了

names=list(s)

print

(names)

#上述幾句變為一句,簡單去重,順序會變

names=list(set(names))

程式語言 Python 002

1 字串拼接 字串格式化,可以處理非常複雜的字串拼接 usr bin python print my name is s and weight is d kg zara 21 輸出為 is zara and weight is 21 kg 常用佔位符號 s,i,d,c 還可以控制輸出的格式,比如對齊...

002 Python資料型別

一 int型別 進製標誌 二進位制0b開頭 八進位制0o開頭 十六進製制 0x開頭 二 float型別 三 str型別 格式化字串 引入 字串之間相加,則會自動將兩個字串拼接為乙個字串。但是,字串不能和其他的型別的資料進行加法運算,所以 a 123 print a a 就會報錯。解決方式一 pyth...

資料結構與演算法(Python)00 2演算法效率衡量

第一次嘗試 import time start time time.time 注意是三重迴圈 for a in range 0 1001 for b in range 0 1001 for c in range 0 1001 if a 2 b 2 c 2and a b c 1000 print a,...