導航:首頁 > 編程語言 > python字典詳解

python字典詳解

發布時間:2022-04-13 17:40:09

1. python字典的特點和用處

字典的特點:

字典的每個健值的展現方式是:key:value用冒號分割;鍵值之間為逗號分割;整個字典用大括弧{}將鍵值括起來;

鍵值可以是任意類型的對象;

鍵必須是唯一的;

鍵是不可變的;
字典的作用:
字典(日常生活中的字典和Python字典)旨在讓你能夠輕松地找到特定的單詞(鍵),以獲悉其定義(值)。

在很多情況下,使用字典都比使用列表更合適。下面是Python字典的一些用途:

表示棋盤的狀態,其中每個鍵都是由坐標組成的元組;

存儲文件修改時間,其中的鍵為文件名;

數字電話/地址簿。

2. Python中字典創建、遍歷、添加等實用操作技巧合集

欄位是Python是字典中唯一的鍵-值類型,是Python中非常重要的數據結構,因其用哈希的方式存儲數據,其復雜度為O(1),速度非常快。下面列出字典的常用的用途.
一、字典中常見方法列表
代碼如下:
#方法
#描述
-------------------------------------------------------------------------------------------------
D.clear()
#移除D中的所有項
D.()
#返回D的副本
D.fromkeys(seq[,val])
#返回從seq中獲得的鍵和被設置為val的值的字典。可做類方法調用
D.get(key[,default])
#如果D[key]存在,將其返回;否則返回給定的默認值None
D.has_key(key)
#檢查D是否有給定鍵key
D.items()
#返回表示D項的(鍵,值)對列表
D.iteritems()
#從D.items()返回的(鍵,值)對中返回一個可迭代的對象
D.iterkeys()
#從D的鍵中返回一個可迭代對象
D.itervalues()
#從D的值中返回一個可迭代對象
D.keys()
#返回D鍵的列表
D.pop(key[,d])
#移除並且返回對應給定鍵key或給定的默認值D的值
D.popitem()
#從D中移除任意一項,並將其作為(鍵,值)對返回
D.setdefault(key[,default])
#如果D[key]存在則將其返回;否則返回默認值None
D.update(other)
#將other中的每一項加入到D中。
D.values()
#返回D中值的列表
二、創建字典的五種方法
方法一:
常規方法
代碼如下:
#
如果事先能拼出整個字典,則此方法比較方便
>>>
D1
=
{'name':'Bob','age':40}
方法二:
動態創建

代碼如下:
#
如果需要動態地建立字典的一個欄位,則此方法比較方便
>>>
D2
=
{}
>>>
D2['name']
=
'Bob'
>>>
D2['age']
=
40
>>>
D2
{'age':
40,
'name':
'Bob'}
方法三:
dict--關鍵字形式
代碼如下:
#
代碼比較少,但鍵必須為字元串型。常用於函數賦值
>>>
D3
=
dict(name='Bob',age=45)
>>>
D3
{'age':
45,
'name':
'Bob'}
方法四:
dict--鍵值序列
代碼如下:
#
如果需要將鍵值逐步建成序列,則此方式比較有用,常與zip函數一起使用
>>>
D4
=
dict([('name','Bob'),('age',40)])
>>>
D4
{'age':
40,
'name':
'Bob'}

代碼如下:
>>>
D
=
dict(zip(('name','bob'),('age',40)))
>>>
D
{'bob':
40,
'name':
'age'}
方法五:
dict--fromkeys方法#
如果鍵的值都相同的話,用這種方式比較好,並可以用fromkeys來初始化

代碼如下:
>>>
D5
=
dict.fromkeys(['A','B'],0)
>>>
D5
{'A':
0,
'B':
0}
如果鍵的值沒提供的話,默認為None
代碼如下:
>>>
D3
=
dict.fromkeys(['A','B'])
>>>
D3
{'A':
None,
'B':
None}
三、字典中鍵值遍歷方法

代碼如下:
>>>
D
=
{'x':1,
'y':2,
'z':3}
#
方法一
>>>
for
key
in
D:
print
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
key,
value
in
D.items():
#
方法二
print
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
>>>
for
key
in
D.iterkeys():
#
方法三
print
key,
'=>',
D[key]
y
=>
2
x
=>
1
z
=>
3
>>>
for
value
in
D.values():
#
方法四
print
value
2
1
3
>>>
for
key,
value
in
D.iteritems():
#
方法五
print
key,
'=>',
value
y
=>
2
x
=>
1
z
=>
3
Note:用D.iteritems(),
D.iterkeys()的方法要比沒有iter的快的多。
四、字典的常用用途之一代替switch
在C/C++/Java語言中,有個很方便的函數switch,比如:
代碼如下:
public
class
test
{
public
static
void
main(String[]
args)
{
String
s
=
"C";
switch
(s){
case
"A":
System.out.println("A");
break;
case
"B":
System.out.println("B");
break;
case
"C":
System.out.println("C");
break;
default:
System.out.println("D");
}
}
}
在Python中要實現同樣的功能,
方法一,就是用if,
else語句來實現,比如:

代碼如下:
from
__future__
import
division
def
add(x,
y):
return
x
+
y
def
sub(x,
y):
return
x
-
y
def
mul(x,
y):
return
x
*
y
def
div(x,
y):
return
x
/
y
def
operator(x,
y,
sep='+'):
if
sep
==
'+':
print
add(x,
y)
elif
sep
==
'-':
print
sub(x,
y)
elif
sep
==
'*':
print
mul(x,
y)
elif
sep
==
'/':
print
div(x,
y)
else:
print
'Something
Wrong'
print
__name__
if
__name__
==
'__main__':
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
s
=
raw_input("Enter
operation
here(+
-
*
/):
")
operator(x,
y,
s)
方法二,用字典來巧妙實現同樣的switch的功能,比如:

代碼如下:
#coding=gbk
from
__future__
import
division
x
=
int(raw_input("Enter
the
1st
number:
"))
y
=
int(raw_input("Enter
the
2nd
number:
"))
def
operator(o):
dict_oper
=
{
'+':
lambda
x,
y:
x
+
y,
'-':
lambda
x,
y:
x
-
y,
'*':
lambda
x,
y:
x
*
y,
'/':
lambda
x,
y:
x
/
y}
return
dict_oper.get(o)(x,
y)
if
__name__
==
'__main__':
o
=
raw_input("Enter
operation
here(+
-
*
/):
")
print
operator(o)

3. python中字典的取值

字典訪問格式是——字典名[鍵名]
你的那句danjia=jiage['wupin']錯了,字典中沒有鍵名'wupin'。
按照你的意思,應該把輸入語句換下wupin=input(...),wupin存放字元串屬性的輸入,你字典里的鍵名是字元串屬性的。然後字典訪問的那句改為danjia=jiage[wupin]。這里字典訪問時就是訪問變數wupin對應的值的鍵名。

4. python裡面的字典有什麼用

字典是另一種可變容器模型,可存儲任意類型對象。

字典的每個鍵值 key-value 對用冒號 : 分割,每個鍵值對之間用逗號 , 分割,整個字典包括在花括弧 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

鍵一般是唯一的,必須是不可變的,如字元串,數字或元組。值不需要唯一,可以取任何數據類型。

在需要使用hash時,就需要用到字典。
比如在統計字元個數時,可以使用字典。
d = {}
for char in strs:
d[char] = d.get(char, 0) + 1

5. Python中的字典是什麼

字典(Dictionary)

6. python字典和列表區別有哪些

列表

1.任意對象的有序集合

列表是一組任意類型的值,按照一定順序組合而成的。

2.通過偏移讀取

組成列表的值叫做元素(Elements)。每一個元素被標識一個索引,第一個索引是0,序列的功能都能實現。

3.可變長度,異構以及任意嵌套

列表中的元素可以是任意類型,甚至是列表類型,也就是說列表可以嵌套。

4.可變的序列

支持索引、切片、合並、刪除等等操作,它們都是在原處進行修改列表。

5.對象引用數組

列表可以當成普通的數組,每當用到引用時,Python總是會將這個引用指向一個對象,所以程序只需處理對象的操作。當把一個對象賦給一個數據結構元素或變數名時,Python總是會存儲對象的引用,而不是對象的一個拷貝。

相關推薦:《Python教程》

字典

1.通過鍵而不是偏移量來讀取

字典就是一個關聯數組,是一個通過關鍵字索引的對象的集合,使用鍵-值(key-value)進行存儲,查找速度快。

2.任意對象的無序集合

字典中的項沒有特定順序,以「鍵」為象徵。

3.可變長、異構、任意嵌套

同列表,嵌套可以包含列表和其他的字典等。

4.屬於可變映射類型

因為是無序,故不能進行序列操作,但可以在遠處修改,通過鍵映射到值。字典是唯一內置的映射類型(鍵映射到值的對象)。

5.對象引用表

字典存儲的是對象引用,不是拷貝,和列表一樣。字典的key是不能變的,list不能作為key,字元串、元祖、整數等都可以。

和list比較,dict有以下幾個特點:

1.查找和插入的速度極快,不會隨著key的增加而增加。

2.需要佔用大量的內存,內存浪費多。

而list相反:

1.查找和插入的時間隨著元素的增加而增加。

2.佔用空間小,浪費內存很少。

所以,dict是用空間來換取時間的一種方法。

7. python字典中的元素有何特點

key為鍵,value為值,一個鍵值為一個項。1.鍵與值之間用冒號分開,即字元串形式。項與項用逗號分開,且都須是英文狀態的符號。2.作為key的元素必須是不可變的,value不唯一,即key與value是一對多關系。3.無序性。
補充一下:dict查找元素速度比較快,查找效率較高,但占內存比較大。

8. Python 字典解析 代碼問題

return [k for k,v in d.items() if v == value]的意思等同於:

k_list=[]
fork,vind.items():
ifv==value:
k_list.push(k)
returnk_list

只不過k_list採用的匿名聲明

閱讀全文

與python字典詳解相關的資料

熱點內容
程序員看不懂怎麼辦 瀏覽:271
linux操作系統題 瀏覽:765
單片機無符號數加法 瀏覽:227
應用隱藏加密怎麼關閉 瀏覽:269
汽車空調的壓縮機電線有什麼用 瀏覽:429
電腦加密圖片如何取消加密 瀏覽:340
慧凈電子51單片機視頻 瀏覽:343
javamap賦值 瀏覽:165
什麼app可以玩掌機游戲 瀏覽:46
java簡單聊天室 瀏覽:462
通用汽車編程軟體 瀏覽:432
一級抗震框架梁箍筋加密區規定是多少 瀏覽:974
教你如何把安卓手機變成蘋果 瀏覽:11
app編譯分類 瀏覽:323
怎麼用伺服器的資源包 瀏覽:199
oa軟體手機登陸伺服器地址 瀏覽:289
androidrtp打包 瀏覽:723
信息被加密碼了怎麼辦 瀏覽:420
彈出光碟命令 瀏覽:517
kdj公式源碼分享 瀏覽:355