天天看點

DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

1. dict字典

a. 定義

如果把清單看做是有序的對象集合,那麼就可以把字典當成是無序的集合。它們主要的差别在于:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。

b. 建立

1、直接建立

方法一:
temp = {} 
temp['name'] = 'xiaoming'
方法二:
temp = dict()
temp['name'] = 'xiaoming'
           

2、dict() 函數建立

方法一:
temp = dict(name='xiaoming', age=18)
方法二:
temp = dict((('name', 'xiaoming'), ('age', 18)))
方法三:dict() zip() 函數聯合使用
temp = dict(zip(['name', 'age'], ['xiaoming', 18]))
           

c. 字典的方法

1.clear

會清空該字典。

d={1:2}
d.clear
d     
           
DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

2.copy

該方法會指派給一個新的字典,内容和原子典一緻,源字典改變,拷貝的字典不變。

d={1:2}
c2=d.copy()
c2
d
d[2]=3
d
c2
           
DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

3.fromkeys

這個方法可以建立一個所有值一樣的字典,然而并不曉得有什麼用,大概還沒遇到,源字典不變

d

d.fromkeys([‘w’,‘ws’],[‘2’,‘3’])

d.fromkeys([‘w’,‘ws’],‘2’)

d.fromkeys([‘w’,‘ws’],(2,3))

DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

4.get

這個方法好,和d[key]的差別在于,若key不存在get方法不會報錯,不影響程式運作,尤其是在爬蟲的時候,可以避免程式出錯。

d
d.get(1)
d.get(3)
           
DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

5.items

這個方法會将所有的鍵值對以元組的形式傳回。

d.items()
dict_items([(1,2),(2,3)])
d
for k,v in d.items():
    print(k)
    print(v)
           
DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

6.keys和value

傳回keys 和value

d.keys()`在這裡插入代碼片`
d.values()
           
DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

7.pop

這個方法和get有點像,但是有差別,他會傳回對應的值後,删除該鍵值對。

d.pop(1)
d
           
DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

8.popitem

删除字典給定鍵 key 所對應的值,傳回值為被删除的值,如果要删除的 key 不存在,則需要添加預設值,否則會報錯。

删除指定key

>>> t = {'name': 'summer', 'age': 23}
>>> t.pop('name')
'summer'
>>> t
{'age': 23}
           

key不存在,傳回預設值

>>> t = {'name': 'summer', 'age': 23}
>>> t.pop('new_nmae', 'judy')
'judy'
>>> t
{'name': 'summer', 'age': 23}
           

key不存在,沒有預設值

>>> t = {'name': 'summer', 'age': 23}
>>> t.pop('new_nmae')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'new_nmae'
           

9.setdefault

功能上與get一緻,但是他會向字典裡面添加鍵,值預設為None。

DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

10.update

類似于合并字典,但是如果有相同的鍵合并的字典會被新字典的值覆寫。

DataWhale學習計劃(第六期):python基礎任務31. dict字典2. 集合(set)3. 判斷語句(要求掌握多條件判斷)4. 三目表達式5. 循環語句

2. 集合(set)

a… 特性

不同元素(無重複)

無序

元素必須是不可變類型的對象,集合本身是可變類型

b 建立

定義一個空的集合 my_set = set()

注意: my_set = {} 這樣的寫法為一個空字典

c. 方法

(1)添加元素(add,update)

add 作為一個整體添加到集合中

my_set = set()
my_set.add("abc")
print(my_set)
           

update 是把要傳入的元素拆分,做為個體傳入到集合中

my_set = set()
my_set.update("abc")
print(my_set)
           

(2)删除元素(remove,pop,discard)

remove 如果有,直接删除;如果沒有,程式報錯 格式:集合名.remove(元素)

my_set = {11, 13, 15}
my_set.remove(13)
print(my_set)
my_set.remove(131)
print(my_set)
           

pop 随機删除集合中的元素 如果集合中沒有元素則程式報錯

my_set = {11, 13, 15}
my_set.pop()
print(my_set)
           

discard 如果元素存在,直接删除; 如果元素不存在 不做任何操作

格式: 集合名.discard(元素)

my_set = {11, 13, 15}
my_set.discard(13)
print(my_set)
my_set.discard(131)
print(my_set)
           

(3)交集( & )

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 & set2
print(new_set)
#結果  {3, 4}
           

(4)并集( | )

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 | set2
print(new_set)
#結果  {1, 2, 3, 4, 5, 6}
           

(5)差集( - )

項在前一個集合中,但不在一個集合中

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 - set2
print(new_set)
#結果  {1, 2}
           

(6)對稱差集( ^ )

項在前一個集合或後一個集合中,但不會同時出現在二者中

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
new_set = set1 ^ set2
print(new_set)
#結果  {1, 2, 5, 6}
           

(7)去重( 将元組或者清單轉化為集合 )

my_list = [1, 2, 3, 4, 2, 3, 1, 2, 2]
#轉化為集合
my_set = set(my_list)
print(list(my_set)) 
# 結果  [1, 2, 3, 4]
           

3. 判斷語句(要求掌握多條件判斷)

if…:[+elif…:+else…:]

基本判斷符号:等于==, 不等于!=, 大于>, 小于<, 大于等于>=, 小于等于<=, 取反not(注意不是!)

多個判斷語句結合:與and,或or

一個if語句 + 一個else 語句:

當if 判斷為True時,執行if語句下的代碼; 而當if判斷為False時,執行else語句下面的代碼。

n個if語句(n>=2) + 最後一個else語句:

每一個if語句都會被判斷,不管它之前的if判斷的是True或者False。 判斷為True的if語句,其對應的代碼會被執行,而為False時則不執行,直接跳到下一個if判斷。

而else語句隻有當第n個if(即else前一個if)為False時才執行。若第n個if為True, 則不執行else語句對應的内容。

一個if語句 + n 個 elif語句 (n >=1) + 一個else語句:

按照先後順序進行判斷,若目前條件(if 或者是 elif) 為False, 則跳到下一個條件進行判斷,否則為True時,執行對應的代碼,并且後面還未執行的條件判斷都跳過,不再執行了。

即隻要遇到一個if或elif為True的, 程式執行完對應的代碼後,該輪條件判斷就結束了。

4. 三目表達式

格式:為真時的結果 if 判定條件 else 為假時的結果

例1 是先輸出結果,再判定條件

輸出1,如果5大于3,否則輸出0

print(1 if 5>3 else 0) 
           

例二 一般用于判斷指派中,例如:

x,y = 50,25
small = x if x<y else y
print(small)
           

例三 還可以嵌套使用,還可以多層嵌套

a,b,c=10,20,6
min_num = a if a<b and a<c else (b if b<a and b<c else c)
print(min_num)
           

5. 循環語句

python中循環語句隻有兩種 A.while…: B.for…in…:

A.while語句:當判斷語句為真時一直執行縮進的代碼塊,必須指定跳出條件。

while 判斷條件:

執行語句……

B.for語句:這個語句比較靈活,因為可以使用in來指定某一個序列而不用決定跳出條件(當處理完序列後就會跳出循環)

  1. for 變量 in range(10):

    循環需要執行的代碼

  2. for 變量 in range(10):

    循環需要執行的代碼

    else:

    循環執行結束執行的代碼

    C.搭配的關鍵詞:break和continue。用法同java中的用法。

    D.python還允許在循環中搭配else,表示不是由break跳出循環時才能調用(相當于do…while的用法)

https://blog.csdn.net/weixin_41179709/article/details/81586367

https://blog.csdn.net/murenqishi/article/details/39894547

https://blog.csdn.net/youzi_yun/article/details/78943450

https://blog.csdn.net/weixin_42589922/article/details/80902620

https://blog.csdn.net/qq_26261381/article/details/83094534

https://blog.csdn.net/weixin_43946756/article/details/86564991

https://blog.csdn.net/qq_42497250/article/details/81123729

https://blog.csdn.net/weixin_42589922/article/details/80902620

https://blog.csdn.net/mg_aping/article/details/82831599

https://blog.csdn.net/Yort2016/article/details/71159951