python集合及內建方法

2022-08-28 08:42:07 字數 3573 閱讀 4916

1.集合

集合主要作用:去重;關係運算。

集合的元素遵循三個原則:1:每個元素必須是不可變型別(可hash,可作為字典的key);2:沒有重複的元素;3:無序

2.集合的內建方法

(1)將列表轉化為乙個集合,並將列表中的重複元素刪除,生成乙個無序的集合

s=set(['

alex

','alex

','王強'])

print(s)

set()在建立集合時會自動去重;frozenset()建立出的集合不可被新增刪除

(2)新增及刪除

s=set(['

alex

','alex

','王強'])

s.add(

'wangqiang')

print(s)

add()新增,只能新增乙個元素;s1.update(s2)的形式可以更新多個值,將集合s2中的元素更新到s1中

clear()清屏;copy()複製,複製輸出無序;

s=set(['

alex

','alex

','王強'])

s.remove(

'wangqiang')

print(s)

remove()指定刪除,當指定刪除的元素不存在時會報錯;pop()隨機刪除;discard()指定刪除,當指定刪除的元素不存在時不會報錯

(3)交集(&或者intersection())

p_s=

l_s=

print(p_s&l_s)

print(p_s.intersection(l_s))

輸出結果為:

(4)並集(|或者union())

p_s=

l_s=

print(p_s|l_s)

print(p_s.union(l_s))

輸出結果為:

(5)差集(-或者difference())

p_s=

l_s=

print(p_s-l_s)

print(p_s.difference(l_s))

輸出結果為:

p_s-l_s:僅存在於p_s集合裡的;l_s-p_s:僅存在於l_s集合裡的(輸出結果為:)

p_s=

l_s=

p_s.difference_update(l_s)

print(p_s)

difference_update():求出差集並將結果更新於集合中

(6)交叉補集(^或者symmetric_difference())

p_s=

l_s=

print(l_s^p_s)

print(p_s.symmetric_difference(l_s))

輸出結果為:。兩集合的並集減去兩集合的交集

(7)判斷兩集合是否沒有交集

s1=

s2=print(s1.isdisjoint(s2))

輸出結果為:false。(沒有交集返回值為true,有交集返回值為false)

(8)子集和父集

s1=

s2=print

(s1.issubset(s2))

print(s2.issuperset(s1))

輸出結果為:true;true(其中,s1.issubset(s2)判斷s1 是否是s2 的子集;s2.issuperset(s1)判斷s1 是否是s2 的父集)

(9)列表去重

names=['

alex

','alex

','wupeiqi']

names=list(set(names))

print(names)

輸出結果為:['wupeiqi', 'alex'](結果仍未列表的形式,結果內的元素是無序的)

3.字串格式化

a.百分號方式

(1)字串拼接

msg='

i am %s my hobby is %d

' % ('

wangqiang

',18)

print(msg)

輸出結果為:i am wangqiang my hobby is 18

%s後面可以接任何資料型別,基本接字串;%d後面接整形數字

tpl = "

i am %(name)s age %(age)d

" %

print(tpl)

輸出結果為:i am wangqiang my agey is 18(以鍵的形式傳入資料)

(2)列印浮點數(預設保留六位)

tpl = "

percent %.2f

" % 99.97623444

print(tpl)

輸出結果為:percent 99.98。其中,2表示保留小數點後兩位

(3)列印百分比(預設保留六位)

tpl = '

percent %.2f %%

' % 99.976234444

print(tpl)

輸出結果為:percent 99.98%

(4)按指定分隔符將字串進行拼接

print('

root

','x

','0

','0

',sep='

:')

輸出結果為:root:x:0:0

b.format()字串格式化

(1)以字典的方式進行傳入

tpl = "

i am , age , really

".format(**)

print(tpl)

輸出結果為:i am 王強, age 18, really 王強。相當於命令:

tpl = "

i am , age , really

".format(name="

王強", age=18)

print(tpl)

(2)以列表的方式傳入

tpl = "

i am , age

".format(*["

王強", 18])

print(tpl)

輸出結果為:i am 王強, age 18。相當於命令:

tpl = "

i am , age

".format("

seven

", 18)

print(tpl)

(3)

tpl = "

numbers: ,,,,, ,{}

".format(15, 15, 15, 15, 15, 15.87623, 2)

print(tpl)

輸出結果為:numbers: 1111,17,15,f,f, 1587.623000%,2

python集合的內建方法

add 為集合新增元素 clear 移除集合中的所有元素 copy 拷貝乙個集合 difference 返回多個集合的差集 difference update 移除集合中的元素,該元素在指定的集合也存在。discard 刪除集合中指定的元素 intersection 返回集合的交集intersect...

Python筆記 集合內建方法總結

set1 是 set2的子集,返回true 否則,返回false。num1 num2 num3 num1.issubset num2 num1中所有的元素是num2的成員 true num1.issubset num3 num1中所有的元素是num3的成員,但num1 num3 trueset2 是...

python集合的其他內建方法

1.交叉補集 python 1 alex bob songyue linux 1 alex bob ghj p s set python 1 l s set linux 1 print p s.symmetric difference l s 等價於print p s l s 2.p s.diffe...