禿頭的一天

2022-07-11 05:00:12 字數 2857 閱讀 3244

字典的鍵值是"唯讀"的,所以不能對鍵和值分別進行初始化,即以下定義是錯的:

>>>dic ={}>>>dic.keys =(1,2,3,4,5,6)traceback(most recent call last):file"",line 1,inattributeerror:'dict'objectattribute 'keys'isread-only

>>>dic.values =("a","b","c","d","e","f")traceback(most recent call last):file"",line 1,inattributeerror:'dict'objectattribute 'values'isread-only

>>>

字典是支援無限極巢狀的,如下面**:

cities=,'河北':}

可以使用如下方法進行列出

fori incities['北京']:print(i)

將列出如下結果:

朝陽海淀昌平懷柔密雲

fori incities['北京']['海淀']:print(i)

輸出如下結果:

圓明園蘇州街中關村北京大學

用字典記錄學生名字和分數,再分級:

#!/usr/bin/python3students={}write =1whilewrite :name =str(input('輸入名字:'))grade =int(input('輸入分數:'))students[str(name)]=grade

write=int(input('繼續輸入?\n 1/繼續 0/退出'))print('name rate'.center(20,'-'))forkey,value instudents.items():ifvalue >=90:print('%s %s a'.center(20,'-')%(key,value))elif89>value >=60:print('%s %s b'.center(20,'-')%(key,value))else:print('%s %s c'.center(20,'-')%(key,value))

測試輸出結果:

輸入名字:a

輸入分數:98繼續輸入?1/繼續0/退出1輸入名字:b

輸入分數:23繼續輸入?1/繼續0/退出0-----name rate-----------a 98a------------b 23c------

字典可以通過以下方法調換 key和 value,當然要注意原始 value 的型別,必須是不可變型別:

dic =reverse =print(dic)print(reverse)

輸出如下:

迴圈顯示字典 key 與 value 值:

b=fori inb.values():print(i)forc inb.keys():print(c)

執行輸出結果為:

runoob

google

ab

字典欄位的比較

獲取字典中最大的值及其鍵:

prices =max_prices =max(zip(prices.values(),prices.keys()))print(max_prices)# (450.1, 'b')

python3.x 中會碰到這樣的問題:

>>>sites_link =>>>sides =sites_link.keys()>>>print(sides[0])traceback(most recent call last):file"",line 1,intypeerror:'dict_keys'objectdoes notsupport indexing

>>>

原因說明及解決方法:

dict.values()dict.keys()

在 python2.x dict.keys 返回乙個列表,但是在在 python 3.x 下,dict.keys 返回的是 dict_keys 物件,若需要轉換為列表,請使用:

list(dict.values())list(dict.keys())

修改上面例項:

>>>sites_link =>>>sides =sites_link.keys()>>>list(sides)['runoog','google']>>>

通過 values 取到 key 的方法:

>>>dic=>>>list(dic.keys())[list(dic.values()).index(1)]'a'

字典列表,即在列表中巢狀字典:

dict_0 =dict_1 =dict_2 =lists =[dict_0,dict_1,dict_2]fordict inlists:print(dict)

輸出:

字典推導式:

格式:

執行步驟:

dict.fromkeys() 存在乙個坑:

例如:

l =[1,2,3]d ={}.fromkeys(l ,)

這樣得到的 d 是:

其實這三個列表的位址是一樣的,修改任意乙個列表的值會導致所有列表的值都發生改變。

可以使用這種方法來解決:

d =

禿頭的一天

在 windows 下可以不寫第一行注釋 usr bin python3第一行注釋標的是指向 python 的路徑,告訴作業系統執行這個指令碼的時候,呼叫 usr bin 下的 python 直譯器。usr bin env python3這種用法先在 env 環境變數 設定裡查詢 python 的安...

禿頭的一天

使用內建 enumerate 函式進行遍歷 forindex,item inenumerate sequence process index,item sequence 12,34,34,23,45,76,89 fori,j inenumerate sequence print i,j 012134...

禿頭的第一天

md markdown格式的檔案,作用是用來寫筆記或者部落格。有序列表使用 數字 英文點 空格 的形式來表示。標題使用 空格表示,數量為標題大小最多為6級。字型加粗,需要加粗的字型前後加兩個 即可,也可以ctrl b。字型斜體 需要斜體的字型前後加乙個 源 模式ctrl 文字引用和說明 空格 超連結...