1. 程式人生 > >【筆記】Python基礎二

【筆記】Python基礎二

一,變數

變數作用是記錄狀態

1,變數基本型別

字串

數字

列表

元組

字典

2,可變不可變

1),可變:修改變數的值,id值不變。列表,字典

2),不可變:新建立變數後需要開闢新記憶體地址。字串,數字,元組

3,訪問順序

1),順序:字串,列表,元組

2),對映:字典

3),直接:數字

4,存放元素個數

容器型別:列表,元組,字典

原子:數字,字串

 

二,新型別:集合

集合出現之前

python_l = ['lcg','szw','zjw']
linux_l = ['lcg','szw','sb']

#迴圈方法求交集
python_and_linux_l = []
for p_name in python_l: if p_name in linux_l: python_and_linux_l.append(p_name) print(python_and_linux_l)

 

特點

1,不同元素組成

2,無序

3,集合中的元素必須是不可變型別:數字,字串,元組

4,集合本身是可變型別,可以追加和刪除元素。注意:使用frozenset('hello')把集合定義成不可變型別

s = frozenset('hello')
print(s)

 

 

形式

s = {1,2,3,4,5,6}

s 
= set("hello") # s={'e','o','h','l'} s = set(['alex','alex','sb']) # s={'sb','alex'}

 

用途:刪除重複值

names = ['alex', 'alex','wupeiqi']
s = set(names)
print(s)
names  = list(s)
print(names)

輸出:

{'wupeiqi', 'alex'}
['wupeiqi', 'alex']

 

 

內建方法

s = {1,2,3,4,5,6}

1,s.add(7)

2,s.clear()

3,s1 = s.copy()

4,s.pop() #無序的集合,隨機刪除

5,s.remove('sb')

如果不存在,會報錯

6,s.discard('sbb')

如果不存在,不會報錯

7,求交集,同時報了兩門課程的人

python_l = ['lcg','szw','zjw']
linux_l = ['lcg','szw','sb']
p_s = set(python_l)
l_s = set(linux_l)
print(p_s,l_s)

print(p_s.intersection(l_s))
print(p_s&l_s)

8,求並集,所有人的集合

print(p_s.union(l_s))
print(p_s|l_s)

9,求差集,報了python沒有報linux的人

print('差集',p_s - l_s)
print('差集',p_s.difference(l_s))

10,交叉補集,合到一塊,扣掉共同的部分,只報了一門課程的人,可能是python,也可能是linux

print('交叉補集',p_s.symmetric_difference(l_s))
print('交叉補集',p_s^l_s)

11,求差集後更新

p_s.difference_update(l_s) #相當於 p_s = p_s - l_s
print(p_s)

12,如果沒有交集則為TRUE

s1 = {1,2}
s2 = {1,2,3,5}
print(s1.isdisjoint(s2)) #False

13,父集與子集

print(s1.issubset(s2))  #True S1是S2的子集
print(s2.issuperset(s1)) #True S2是S1的父集

14,update可以更新(新增)多個值

s1 = {1,2}
s2 = {1,2,3,5}
#s1.update(s2)
s1.update([3,4])
s2.add(4) #add只能更新一個值
print(s1,s2)