python建立字典

lm_y發表於2017-08-23

1.傳統的文字表示式:

>>> d={'name':'Allen','age':21,'gender':'male'}
>>> d
{'age': 21, 'name': 'Allen', 'gender': 'male'}
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

如果你可以事先拼出整個字典,這種方式是很方便的。

2.動態分配鍵值:

>>> d={}
>>> d['name']='Allen'
>>> d['age']=21
>>> d['gender']='male'
>>> d
{'age': 21, 'name': 'Allen', 'gender': 'male'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果你需要一次動態地建立一個字典的一個欄位,那麼這種方式比較合適。

字典與列表不同,不能通過偏移量進行復制,只能通過鍵來讀取或賦值,所以也可以這樣為字典賦值,當然訪問不存在的鍵會報錯:

>>> d[1]='abcd'
>>> d
{1: 'abcd', 'age': 21, 'name': 'Allen', 'gender': 'male'}
>>> d[2]
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in <module>
    d[2]
KeyError: 2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.字典鍵值表

>>> c = dict(name='Allen', age=14, gender='male')
>>> c
{'gender': 'male', 'name': 'Allen', 'age': 14}
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

因為這種形式語法簡單,不易出錯,所以非常流行。

這種形式所需的程式碼比常量少,但是鍵必須都是字串才行,所以下列程式碼會報錯:

>>> c = dict(name='Allen', age=14, gender='male', 1='abcd')
SyntaxError: keyword can't be an expression
  • 1
  • 2
  • 1
  • 2

4.字典鍵值元組表

>>> e=dict([('name','Allen'),('age',21),('gender','male')])
>>> e
{'age': 21, 'name': 'Allen', 'gender': 'male'}
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

如果你需要在程式執行時把鍵和值逐步建成序列,那麼這種方式比較有用。

5.所有鍵的值都相同或者賦予初始值:

>>> f=dict.fromkeys(['height','weight'],'normal')
>>> f
{'weight': 'normal', 'height': 'normal'}

相關文章