Python字典操作及課後練習

2021-08-22 15:20:13 字數 2414 閱讀 1883

'''

dict,唯一乙個對映資料型別

資料型別劃分:可變資料型別,不可變資料型別

不可變資料型別:元組,bool int str(對str的任何改變都是形成了新的str,對原來的str沒有改變)

可變資料型別:list,dict,set

dict key 必須是不可變資料型別,可雜湊,元祖bool,int,str

value: 任意資料型別;

dict 優點: 二分查詢去查詢

儲存大量的關係型資料

特點:無序的

字典的增:

dict1={}

dict1['high'] = 185 沒有鍵值對,新增

dict1['high']=160 如果有鍵值對,則值覆蓋

dict1.setdefault('weight',150) 有鍵值對,不做任何改變;沒有才新增

刪除:print(dic1.pop('age')) 有返回值,按鍵去刪除

print(dic1.pop('age',none)) 沒有這個鍵的話,則返回none

print(dic1)

dic1.popitem() 將最後乙個刪除

print(dict1)

del刪除字典;clear()清空字典表

改: dic2.update(dic1) 將dic1的鍵值對新增到dic2中

查:dict1.keys()字典的鍵 dict1.values()字典的值 .items()裡面是元組,元祖裡面是鍵值

當什麼都不寫時,列印輸出的是鍵

面試題:

a=1 b=2 用一行**轉換a,b的值

a,b = b,a

print(a,b)

字典賦值:

for k,v in dic1.items():

print(k,v)

同樣得到鍵值對,首選get方法!!!

v1 = dic1['name'] 鍵值不存在可能會報錯

v2 = dic1.get('name1','沒有這個鍵') 鍵值不存在時不會報錯,會返回自定義的資訊或者none

dict巢狀

在字典的巢狀字典中新增鍵值對

dic = ,

'age':21

}

練習題1:

# 字典練習題

# 1、元素分類

#有如下值li= [11,22,33,44,55,66,77,88,99,90],

# 將所有大於66的值儲存至字典的第乙個key中,將小於 66 的值儲存至第二個key的值中。

#即:['k1': 大於66的所有值列表, 'k2': 小於66的所有值列表]

li= [11,22,33,44,55,66,77,88,99,90]

dic = {}

# 大於66的所有值列表

li_more =

# 小於66的所有值列表

li_less =

for i in li:

if i == 66:

continue

elif i>66:

else:

dic['k1'] = li_more

dic['k2'] = li_less

練習題2:

輸出商品列表,使用者輸入序號,顯示使用者選中的商品

商品 li = ["手機", "電腦", '滑鼠墊', '遊艇']

要求:1:頁面顯示 序號 + 商品名稱,如:

1 手機

2 電腦

…2: 使用者輸入選擇的商品序號,然後列印商品名稱

3:如果使用者輸入的商品序號有誤,則提示輸入有誤,並重新輸入。

4:使用者輸入q或者q,退出程式。

li = ["手機", "電腦", '滑鼠墊', '遊艇']

while 1:

for i in li:

print('{}\t\t{}'.format(li.index(i)+1,i))

# break

buy = input("輸入自己想要的序號,輸入q或q退出:\n")

if buy.isdigit():

# pass

if int(buy) in range(1,5):

print("想要的是:".format(int(buy),li[int(buy)-1]))

else:

print("請輸入指 定商品範圍的數字!")

elif buy.upper() == 'q':

break

else:

print("請輸入數字!")

總結:

1.format的格式化操作;

2.通過列表.index來取索引下標;

3.isdigit()的使用;

4..upper的使用

列表元組和字典課後練習

1 根據下述要求,編寫乙個程式 使用者輸入乙個字串,將下標為偶數的字元提出來合併成乙個新的字串a,再將下標為奇數的字元提出來合併成乙個新的字串b,再將字串a和b連線起來並輸出。str user input a b i 0 forstr in str user if i 2 0 a a str use...

python之課後練習三

具體實現如下 import os 批量在檔名前加字首 funflag 1 1表示新增標誌,2表示刪除標誌 foldername renamedir 獲取指定路徑的所有檔案名字 foldername list os.listdir foldername 遍歷輸出所有檔案名字 for oldname i...

Python 語言程式設計 課後練習

1.理解文字和二進位制開啟方式的區別 首先,用文字編輯器生成乙個包含 中國是個偉大國家!的 txt格式文字檔案,命名為 test.txt。編寫程式分別用文字檔案方式和二 進製檔案方式讀入,並列印輸出效果。觀察輸出結果並解釋。利用字典將兩個通訊錄文字合併為乙個文字 def main ftele1 op...