Python 學習3

Sun_Rose_發表於2020-12-20

五、字典

序列以連續整數為索引,字典以關鍵字為索引,關鍵字可以是任意不可變型別,通常用字串和數值,字典是python中唯一一個的對映型別,字串、元組、列表屬於序列型別
(1)可變與不可變

  1. id
    id(x)函式,對x進行操作後,id值不變就是不可變,否則就是可變
i=1
print(id(i))  # 140732167000896
i=i + 2
print(id(i))  # 140732167000960
print(i) #3

l= [1, 2]
print(id(l))  # 4300825160
l.append('Python')
print(id(l))  # 4300825160
print(l) #[1, 2, 'Python']
  1. hash
    hash(x)
    只要不報錯,就是可被雜湊,就是不可變型別
    數值、字元、元組都能被雜湊,所以是不可變型別
    列表、集合、字典都不能被雜湊,所以是可變型別
a='Name'
print(a,type(a)) # Name <class 'str'>
print(hash('Name'))  # 7047218704141848153
b=(1, 2, 'Python')
print(b,type(b)) # (1, 2, 'Python') <class 'tuple'>
print(hash(b))  # 1704535747474881831
c=[1, 2, 'Python']
print(c,type(c)) # [1, 2, 'Python'] <class 'list'>
print(hash(c)) # TypeError: unhashable type: 'list'

(2)字典的定義
字典的組成是 鍵:值(key:value) 用大括號[{}]表示,大括號裡頭用逗號[,]分開各個鍵,鍵和值用冒號[:]分開,鍵不可以是表
(3)字典的建立和訪問
3. 用字串和數值

dic1={1:321,2:6789,3:'sdf809'}
print(dic1,type(dic1)) # {1: 321, 2: 6789, 3: 'sdf809'} <class 'dict'>
print(dic1[1]) #321
  1. 用元組
dic1={(1,3,5):'hsuoif','fshjk':(2,68,8),"sgf":[4,67]}
print(dic1[(1,3,5)]) #hsuoif
print(dic1[('fshjk')]) #(2, 68, 8)
print(dic1["sgf"]) #[4, 67]
  1. 通過空字典
    dict
    通過空字典dict()來建立,記住一個key只能對應一個value
dic1=dict()
dic1['asd']='das'
dic1[312]='da'
dic1[(1,4,5)]=76
print(dic1) #{'asd': 'das', 312: 'da', (1, 4, 5): 76}
  1. dict(mapping)
dic1=dict([('apple', 4139), ('peach', 4127), ('cherry', 4098)])
print(dic1)  # {'cherry': 4098, 'apple': 4139, 'peach': 4127}

dic2=dict((('apple', 4139), ('peach', 4127), ('cherry', 4098)))
print(dic2)  # {'peach': 4127, 'cherry': 4098, 'apple': 4139}

相關文章