Python基本语法总结(五)字典操作

访问字典中的值

要获取与键相关联的值,可依次指定字典名和放在方括号内的键,如下所示:

>>> dict={'color':'green'}
>>> print(dict['color'])    # 利用键访问值
green
>>> 

也可以使用get()方法,若指定值不存在则返回默认值

# get(key, default = None)
>>> dict = {'Name': 'Runoob', 'Age': 27}
>>> print(dict.get('Name'))
Runoob
>>> print(dict.get('Sex','man'))
man
>>> print(dict.get('Sex'))
None
>>> 

也可以使用setdefault()方法,使用方法与get()类似

# setdefault(key, default = None)
...

添加键-值对

字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用方括号括起的键和相关联的值。

>>> dict={'color':'green'}
>>> dict['point']=5 # 直接添加键-值对
>>> dict['x_pos']=0
>>> dict['y_pos']=25
>>> print(dict)
{'color': 'green', 'point': 5, 'x_pos': 0, 'y_pos': 25}
>>> 

修改字典中的值

要修改字典中的值,可依次指定字典名、用方括号括起的键以及与该键相关联的新值。

>>> dict={'color':'green'}
>>> print(dict)
{'color': 'green'}
>>> dict['color']='yellow'  # 字典名[键] = 修改值
>>> print(dict)
{'color': 'yellow'}
>>> 

删除字典中的键-值对

对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时,必须指定字典名和要删除的键。

>>> alien_0 = {'color': 'green', 'points': 5}
>>> print(alien_0)
{'color': 'green', 'points': 5}
>>> del alien_0['points']   # 利用del删除键-值对
>>> print(alien_0)
{'color': 'green'}
>>> 

遍历字典

可以使用一个for循环来遍历这个字典:

>>> user_0 = { 
    'username': 'efermi', 
    'first': 'enrico', 
    'last': 'fermi', 
    }
>>> for key,value in user_0.items():    # items()返回一个键值对列表,for循环依次将每个键值对存储到两个变量中
	print('Key:',key)
	print('Vaule:',value)

Key: username   # 返回顺序可能与存储顺序不同
Vaule: efermi
Key: first
Vaule: enrico
Key: last
Vaule: fermi
>>> 

由于字典返回的元素在字典中的顺序不定,为了以特定的顺序返回元素,可以利用sorted()函数获得排序后的字典的副本再访问:

>>> favorite_languages = { 
    'jen': 'python', 
    'sarah': 'c', 
    'edward': 'ruby', 
    'phil': 'python', 
    }
>>> for name in sorted(favorite_languages.keys()): 
	    print(name.title() + ", thank you for taking the poll.")
	    
Edward, thank you for taking the poll.  # 按照ascii码顺序
Jen, thank you for taking the poll.
Phil, thank you for taking the poll.
Sarah, thank you for taking the poll.
>>> 

如果想要查看字典中所有的键而不查看对应的值,可以利用方法keys():

>>> favorite_languages = { 
    'jen': 'python', 
    'sarah': 'c', 
    'edward': 'ruby', 
    'phil': 'c#', 
    }
>>> for name in favorite_languages.keys():
	print(name)
	
jen
sarah
edward
phil
>>> 

同理,想要只访问字典中的所有值,可以利用方法values():

>>> favorite_languages = { 
    'jen': 'python', 
    'sarah': 'c', 
    'edward': 'ruby', 
    'phil': 'c#', 
    }
>>> for value in favorite_languages.values():
	print(value)
	
python
c
ruby
c#
>>> 

由于在字典中键是唯一不可重复的,而值可能重复,故若想知道值的种类(去重后),可以使用集合set,通过对包含重复元素的列表调用set(),可让Python找出列表中独一无二的元素,并使用这些元素创建一个集合:

>>> favorite_languages = { 
    'jen': 'python', 
    'sarah': 'c', 
    'edward': 'ruby', 
    'phil': 'c#',
    'bob':'c',
    'john':'python'
    }
>>> for value in set(favorite_languages.values()):
	print(value)

python  # 去重后
ruby
c#
c
>>> 

判断某个键是否存在于字典中

if key in dict.keys():
    ...

也可以利用has_key()方法来查看

if dic.has_key(key):
    ...
posted @ 2020-09-17 20:33  海物chinono  阅读(219)  评论(0)    收藏  举报