字典
序列是以連續的整數為索引,與此不同的是,字典以"關鍵字"為索引,關鍵字可以是任意不可變型別,通常用字串或數值。
字典是 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...