天天看點

python 基礎學習筆記 -- 字典寫在前面

寫在前面

這是筆者的在python學習過程中的一些筆記,如有誤,還請諒解。

python學習心得(五)

資料結構之字典

一、字典的介紹

  • 字典屬于一種新的資料結構,稱為映射(mapping)
  • 字典的作用和清單類似,都是用來存儲對象的容器
  • 清單存儲資料的性能很好,但是查詢資料的性能的很差
  • 在字典中每一個元素都有一個唯一的名字(key),通過這個唯一的名字可以快速的查找到指定的元素
  • 在查詢元素時,字典的效率是非常快的
  • 在字典中可以儲存多個對象,每個對象都會有一個唯一的名字

    這個唯一的名字,我們稱其為鍵(key),通過key可以快速的查詢value

    這個對象,我們稱其為值(value)

    是以字典,我們也稱為叫做鍵值對(key-value)結構

    每個字典中都可以有多個鍵值對,而每一個鍵值對我們稱其為一項(item)

# 使用 {} 來建立字典
>>> d = {} # 建立了一個空字典
>>> print(d,type(d))
{} <class 'dict'>
           

二、字典的使用

  1. 利用{}建立字典,或者利用dict(k1=v1,k2=v2,k3=v3)建立
  2. 根據鍵(key)來擷取值(value),如果使用字典中不存在的鍵,會報出異常Key Error
  3. 字典的值可以是任意對象;字典的鍵可以是任意的不可變對象(int、str、bool、tuple …),但是一般我們都會使用str
  4. 字典的鍵是不能重複的,如果出現重複的後邊的會替換到前邊的’’’
>>> # 使用 {} 來建立字典
my_dict = {} #創立一個空字典
# 建立一個保護有資料的字典
>>> my_dict = {
'name':'奕夕',
'age':18,
'gender':'male'
}
>>> print(my_dict['name'])
奕夕

>>> my_dict = {
'name':'奕夕',
'age':18,
'gender':'male',
'name':'yixi'
}
>>> print(my_dict['name'])
yixi
           
  1. len()擷取字典長度
    >>> len(my_dict)
    3
               
  2. get(key[, default]) 該方法用來根據鍵來擷取字典中的值
    >>> #   如果擷取的鍵在字典中不存在,會傳回None
    >>> #   也可以指定一個預設值,來作為第二個參數,這樣擷取不到值時将會傳回預設值
    >>> print(my_dict.get('name'))
    yixi
    >>> print(my_dict.get('hello','預設值'))
    預設值
               
  3. d[key] = value 如果key存在則覆寫,不存在則添加
    >>> my_dict['name'] = 'GiHub' # 修改字典的key-value
    >>> my_dict['name']
    'GiHub'
    >>> my_dict['address'] = 'world' # 向字典中添加key-value
    >>> my_dict['address']
    'world'
               
  4. pop(key[, default])根據key删除字典中的key-value
    >>> my_dict.pop('d')#删除不存在的鍵會報錯
    Traceback (most recent call last):
      File "<pyshell#20>", line 1, in <module>
        my_dict.pop('d')
    KeyError: 'd'
    >>> my_dict.pop('d','default')#而有預設值的情況下會傳回預設值
    'default'
    
    # 根據key删除字典中的key-value
    # 會将被删除的value傳回!
    
               
  5. clear()清空字典

三、字典的周遊

利用for 循環進行字典的周遊:

  1. 通過周遊keys()來擷取所有的鍵
    >>> for k in my_dict.keys() :
    	print(k)
    
    	
    name
    age
    gender
    
               
  2. 通過周遊values()來擷取所有的值:
    >>> for v in my_dict.values():#此處my_dict被初始化過
    	print(v)
    
    	
    奕夕
    18
    male
               
  3. 通過周遊items()來擷取一個雙值子序列,其中包含了所有鍵值對:
    >>> for k,v in my_dict.items():
    	print(k,v)
    
    	
    name 奕夕
    age 18
    gender male