PYTHON學習第N天

2021-09-29 02:16:49 字數 3019 閱讀 5172

字典

序列是以連續的整數為索引,與此不同的是,字典以"關鍵字"為索引,關鍵字可以是任意不可變型別,通常用字串或數值。

字典是 python 唯一的乙個 對映型別,字串、元組、列表屬於序列型別。

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

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

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

i =

1print(id

(i))

# 140732167000896

i = i +

2print(id

(i))

# 140732167000960

l =[1,

2]print(id

(l))

# 4300825160

'python'

)print(id

(l))

# 4300825160

整數 i 在加 1 之後的 id 和之前不一樣,因此加完之後的這個 i (雖然名字沒變),但是不是加前的那個 i 了,因此整數是不可更改的。

列表 l 在附加 『python』 之後的 id 和之前一樣,因此列表是可更改的。

print

(hash

('name'))

# -9215951442099718823

print

(hash((

1,2,

'python'))

)# 823362308207799471

print

(hash([

1,2,

'python'])

)# typeerror: unhashable type: 'list'

print

(hash

('name'))

# -9215951442099718823

print

(hash((

1,2,

'python'))

)# 823362308207799471

print

(hash([

1,2,

'python'])

)# typeerror: unhashable type: 'list'

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

「字典」定義語法為

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

關鍵點是「大括號 {}」,「逗號 ,」和「冒號 :」

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

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

冒號 將鍵和值分開

建立和訪問字典

字典是無序的 鍵:值對(key:value 對)集合,鍵必須是互不相同的(在同乙個字典之內)。

brand =

['李寧'

,'耐克'

,'阿迪達斯'

]slogan =

['一切皆有可能'

,'just do it'

,'impossible is nothing'

]print

('耐克的口號是:'

, slogan[brand.index(

'耐克')]

)# 耐克的口號是: just do it

dict1 =

print

('耐克的口號是:'

, dict1[

'耐克'])

# 耐克的口號是: just do it

dict2 =

print

(dict2)

# print

(dict2[1]

)# one

dict3 =

print

(dict3)

# print

(dict3[

'rice'])

# 35

d =

for k, v in iterable:

d[k]

= v

dict(**kwargs) -> new dictionary initialized with the name=value pairs in the keyword argument list. for example: dict(one=1, two=2)

dict4 =

dict([

(,4139),

('peach'

,4127),

('cherry'

,4098)]

)print

(dict4)

dict4 =

dict((

(,4139),

('peach'

,4127),

('cherry'

,4098))

)print

(dict4)

dict 內部存放的順序和 key 放入的順序是沒有關係的。

dict 查詢和插入的速度極快,不會隨著 key 的增加而增加,但是需要占用大量的記憶體。

把資料放入 dict 還可以直接通過 key 放入。

乙個 key 只能對應乙個 value,多次對乙個 key 放入 value,後面的值會把前面的值沖掉。

dict5 =

dict

(a=1

, b=

2, c=3)

print

(dict5)

# dict5[

'a']=11

print

(dict5)

# dict5[

'd']=4

print

(dict5)

#

參考文獻

PYTHON學習第N天

try except 語句 try 檢測範圍 except exception as reason 出現異常後的處理 try 語句按照如下方式工作 首先,執行try子句 在關鍵字try和關鍵字except之間的語句 如果沒有異常發生,忽略except子句,try子句執行後結束。如果在執行try子句的...

python第25天 學習python第25天

今天是在尚學堂學習python第25天今天學習了使用者管理,許可權管理 使用者管理 1.使用者的登入與退出 語法 mysql h hostname p port u username p dbname e h hostname 指定要連線mysql的主機名或者ip hostname就是具體的主機名或...

python學習第7天

崔鑫陽 2019.225 課堂檢測題 輸入兩個數 求出他們之間所有的素數 把這些素數放在 乙個列表裡 求這個列表裡素數的和 以及 最大值 和最小值 寫到乙個 裡 num 1 int input 輸入第乙個數 num 2 int input 輸入第二個數 if num 1 num 2 turn num...