Python中的字典一些小總結

2021-09-28 04:52:58 字數 2864 閱讀 9227

字典定義語法:

其中每乙個元素是乙個「鍵值對」——鍵:值 (key:value)

大括號{} 把所有元素綁在一起

逗號, 將每個鍵值對一一分開

分號; 將鍵和值分開

建立字典的例子如下:

d =

print

( d,

type

(d))

執行後

<

class

'dict'

>

內建方法

字典裡最常用的三個內建方法就是keys(), values()和items(),分別是獲取字典的鍵、值、對。

print

(list

(d.keys())

,'\n'

)print

(list

(d.values())

,'\n'

)print

(list

(d.items())

)

執行後

[

'a',

'b',

'c',

'd',

'e']

['1'

,'2'

,'3'

,'4'

,'5'][

('a'

,'1'),

('b'

,'2'),

('c'

,'3'),

('d'

,'4'),

('e'

,'5'

)]

新增

比如加乙個「f:6」

d[

'f']

='6'

執行後

獲取

兩者都可以

print

( d[

'b']

)print

( d.get(

'b')

)

更新

d[

'c']

='33'

執行後

刪除

del d[

'd']

# 或像列表裡的 pop() 函式,刪除行業 (industry) 並返回出來。

d.pop(

'd')

執行後

不可更改鍵

字典裡的鍵是不可更改的,因此只有那些不可更改的資料型別才能當鍵,比如整數 (雖然怪怪的)、浮點數 (雖然怪怪的)、布林 (雖然怪怪的)、字元、元組 (雖然怪怪的),而列表卻不行,因為它可更改。看個例子

d =

print

( d )

執行後

雖然怪怪的,但這些 2, 10.31, true, (『ok』, 3) 確實能當鍵。有個地方要注意下,true 其實和整數 1 是一樣的,由於鍵不能重複,當你把 2 該成 1時,你會發現字典只會取其中乙個鍵,示例如下:

d =

print

( d )

執行後

那麼如何快速判斷乙個資料型別 x 是不是可更改的呢?兩種方法:

麻煩方法:用 id(x) 函式,對 x 進行某種操作,比較操作前後的 id,如果不一樣,則 x 不可更改,如果一樣,則 x 可更改。

便捷方法:用 hash(x),只要不報錯,證明 x 可被雜湊,即不可更改,反過來不可被雜湊,即可更改。

先看用 id() 函式的在整數 i 和列表 l 上的執行結果:

i =

1print(id

(i))

i = i +

2print(id

(i))

執行後

1607630928

1607630992

l =[1

,2]print(id

(l))

'python'

)print(id

(l))

執行後

2022027856840

2022027856840

先看用 hash() 函式的在字元 s,元組 t 和列表 l 上的執行結果:

hash

('name'

)

執行結果為:7230166658767143139

hash((

1,2,

'python'

))

執行結果為:3642952815031607597

hash([

1,2,

'python'

])

執行結果為:typeerror: unhashable type: 『list』

字元 s 和元組 t 都能被雜湊,因此它們是不可更改的。列表 l 不能被雜湊,因此它是可更改的。

一些小總結

1.不使用中間變數,更換2個變數的值的3個方法 int a 34 int b 45 system.out.println a a b b a b b a 0 system.out.println a a b b a a b b a b a a b system.out.println a a b b...

python中的一些小坑

a 1 b 1 這兩個看起來好像也沒什麼差別嘛,就是乙個都好而已 列印出來的結果卻差很多!print type a print a print type b print b 1 1,a 1 2,3 b a a 4,5,6 a a 4,5,6 print a,b 使用 列印結果 1,2,3,4,5,6...

python中的一些小知識 一

1.特殊變數 name 我們可以在我們的python檔案中加入如下 以方便進行單元測試。def unit test print this is a unit test if name main unit test 當python檢測到乙個程式檔案正在被直譯器執行而不是作為乙個被匯入的模組,它會把特殊...