python基礎之布爾運算、集合


布爾值

True    真

False    假

所有的數據類型都自帶布爾值,數據只有在0,None和空的時候為False。

print(bool())
print(bool())
print(bool(''))
print(bool(' '))
print(bool(0))
print(bool(None))

輸出結果
False
False
False
True
False
False

not、or和and優先級

優先級由高到低:not>>and>>or

例1:先計算and,后計算or----->True and False為False,False or False為False,結果輸出no

if True and False or False:
    print('yes')
else:
    print('no')

輸出結果
no

例2:先計算and,后計算or------->False and False為False,True and False為True,輸出yes

if True or False and False:
    print('yes')
else:
    print('no')

輸出結果
yes

例3:先計算not,后計算and,最后計算or------>not True為False,False and False為False,False or False為False,輸出no

if not True and False or False:
    print('yes')
else:
    print('no')

輸出結果
no

例4:先計算not False為True,再計算False and True為False,最后計算True or False為True,輸出yes

if True or False and not False:
    print('yes')
else:
    print('no')

輸出結果
yes

 

集合

集合是進行關系運算的,能夠去除重復元素,而元素只能是不可變類型,另外,集合和字典一樣,是無序的。

創建集合

s1={1,2,2,3,4}
print(s1,type(s1))
s2=set('apple')
print(s2,type(s2))
s3=set(['apple','apple','pear'])
print(s3,type(s3))
s4=set(('apple','apple','pear'))
print(s4,type(s4))
s5=set({'apple':'蘋果','pear':'梨'})
print(s5,type(s5))

輸出結果:(順序可能不一樣)
{1, 2, 3, 4} <class 'set'>
{'a', 'p', 'l', 'e'} <class 'set'>
{'pear', 'apple'} <class 'set'>
{'pear', 'apple'} <class 'set'>
{'pear', 'apple'} <class 'set'>

創建空集合

s=set()
print(type(s))

交集

s={1,2,'c',4,5}
d={1,'a','b',4,5}

print(s.intersection(d))
或
print(s & d)

輸出結果:
{1, 4, 5}

並集

s={1,2,'c',4,5}
d={1,'a','b',4,5}
print(s.union(d))
或
print(s | d)

輸出結果:
{'b', 1, 2, 4, 5, 'a', 'c'}

差集

s={1,2,'c',4,5}
d={1,'a','b',4,5}
print(s.difference(d))
或
print(s - d)

輸出結果
{'c', 2}

對稱差集

s={1,2,'c',4,5}
d={1,'a','b',4,5}
print(s.symmetric_difference(d))
或
print(s ^ d)

輸出結果:
{'b', 2, 'a', 'c'}

清空集合內元素

s={1,2,'c',4,5}
s.clear()
print(s)

輸出結果
set()

求差集並賦值

s={1,2,'c',4,5}
d={1,'a','b',4,5}
s.difference_update(d)

輸出結果
{2, 'c'}

更新

s1={'a',1}
s2={'a','b',3,1}
s1.update(s2)
print(s1)

輸出結果
{1, 3, 'a', 'b'}

添加

s1={'a',1}
s1.add(3)
s1.add('a')
print(s1)

輸出結果
{1, 3, 'a'}

刪除

s1={'a',1}
s1.discard('a')     #當沒有該元素時候不報錯    
#s1.remove('aa')    #當沒有aa元素時候會報錯
#s1.pop()            #隨機刪除
print(s1) 

輸出結果:
{1}

判斷

s1={'a',1}
s2={'a','b',3,1}
print(s1.issubset(s2))   #判斷s1是否是s2的子集,如果s1等於s2那么互為子集
print(s2.issuperset(s1))  #判斷s2是否是s1的超集
print(s1.isdisjoint(s2))   #判斷有沒有集合,如果沒有返回True

輸出結果
True
True
False

循環

for i in s2:
    print(i)

輸出結果(無序)
l
e
a
p


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM