zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Python字典的基本概念_Python自学第二十六节

2023-02-18 16:43:01 时间

字典是另一种可变容器模型,且可存储任意类型对象。字典包含键(左侧)和值(右侧)两部分,每个键和值之间用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。字典中的元素没有索引编号,也不能进行切片,根据键去找值,比如要引用 services 字典中第一个元素的值,使用 services['ftp']。

>>> services = {'ftp':21,'ssh':22,'http':80}   #ftp为键,21为值
>>> services['ssh']
22
>>> services['http']
80
>>> services['http'] = 8080   #键是不能修改的,可以修改值
>>> services
{'ftp': 21, 'ssh': 22, 'http': 8080}
  • 因为字典是以键进行取值,所以字典中的键是唯一的,而且不可修改。值是可以修改的,并且是原地操作直接修改源字典的内容。
  • 因为键不可修改,所以只能使用一些不可变序列来作为字典的键,通常使用字符串作为键。
  • 字典的优点具有极快的查找速度,在处理大批量数据时更加推荐使用字典。

字典的基本用法

  • 字典的常规用法与其他对象差不多。
  • 往字典中添加新元素:
    • 如果指定的键不存在,那么是添加新元素。
    • 如果指定的键已存在,那么是修改元素值。
>>> services['https'] = 443   #增加新的元素,https之前不存在
>>> services
{'ftp': 21, 'ssh': 22, 'http': 8080, 'https': 443}
>>> services['http'] = 80   #http已经存在,则进行修改
>>> services
{'ftp': 21, 'ssh': 22, 'http': 80, 'https': 443}

字典基本的函数和方法

字典的基本函数和方法:keys()方法、values()方法、items()方法

keys()方法可以返回字典中所有的键

>>> services.keys()
dict_keys(['ftp', 'ssh', 'http', 'https'])

values()方法可以返回字典中所有的值

>>> services.values()
dict_values([21, 22, 80, 443])

items()方法返回字典中所有的元素,整体列表显示,列表里的每个元素为一个元组

>>> services.items()
dict_items([('ftp', 21), ('ssh', 22), ('http', 80), ('https', 443)])

对字典进行检索

  • in运算符智能检测字典中是否存在指定的键,而不能检测是否存在指定的值;
  • 要检测字典中是否存在指定的值,可以结合 values() 方法;
>>> 'http' in services   #查看是否存在'http'键
True
>>> 80 in services   #查看是否存在 80 的值,是查不到值的
False
>>> 80 in services.values()   #配合values()方法进行查看即可
True

字典的遍历

要对字典进行遍历,默认是对键进行遍历

>>> for i in services:
...     print(i)
... 
ftp
ssh
http
https

对值进行遍历的两种办法

>>> for i in services:   #i取值为键
...     print(services[i])   #services[i]即可转换为字典中每个元素的值
... 
21
22
80
443
>>> for i in services.values():   #i取值直接为值
...     print(i)
... 
21
22
80
443

对键和值通时进行遍历

>>> for i in services:   #取值为键
...     print(f'{i}:{services[i]}')   #字符串格式化,f' {i}'即为键 :{services[i]即为键的值}'
... 
ftp:21
ssh:22
http:80
https:443
方法二

>>> for m,n in services.items():   #定义两个循环变量在services.items()进行取值
...     print(f'{m}:{n}')   #字符串格式化输出如下
... 
ftp:21
ssh:22
http:80
https:443