Python之字典

字典 dict

  • 字典是一种可变的容器,可以存储任意类型的数据

  • 字典中的每个数据都是用 键(key) 进行索引,而不像序列可以用下标来进行索引

  • 字典的数据没有先后顺序关系,字典的存储是无序的

  • 字典中的数据以 键(key)-值(value) 对进行映射存储

  • 字典的键不能重复,且只能用不可变类型作为字典的键

字典的字面值表示方式

{} 括起来,以冒号 : 分隔 键-值 对, 各键值对用分号分隔开

字典的创建

# 创建空字典
d = {}

# 创建非空的字典:
d = {'name': 'Jason', 'age': 15}
d = {'姓名': '小张'}
d = {1:'壹', 2:'贰'}

字典的构造函数 dict

  • dict() 创建一个空字典,等同于 {}

  • dict(iterable) 用可迭代对象初始化一个字典

  • dict(**kwargs) 关键字传参形式生成一个字典

      d = dict()
      d = dict([('name', 'tarena'), ('age',15)])   # {'name': 'tarena', 'age': 15}
      d = dict(name='tarena', age=15)              # {'name': 'tarena', 'age': 15}
      dict(('AB','CD'))                            # {'A': 'B', 'C': 'D'}
      dict(('AB','CD',[1,2],[3,'E'],'FH'))         # {'A': 'B', 'C': 'D', 1: 2, 3: 'E', 'F': 'H'}
    

字典的键索引

d = {}

# 创建一个新的键值对
d['name'] = 'tarena'  
print(d)              # {'name': 'tarena'}

# 创建键值对
d['age'] = 15  
print(d)              # {'name': 'tarena', 'age': 15}

# 修改键值对
d['age'] = 16  
print(d)              # {'name': 'tarena', 'age': 15}

del 语句删除字典的元素

del 字典[键]

d = {'name': 'china', 'pos': 'asia'}
del d['pos']
print(d)   # {'name':'china'}
 
del d['name']
print(d)   # {}

字典的 in/not in 运算符

可以用 in 运算符来判断一个是否存在于字典中,如果存在则返回 True, 否则返回 False

d = {'a': 1, 'b': 2}
'a' in d     # True
1 in d       # False
100 not in d # True
2 not in d   # True

字典的迭代访问

字典是可迭代对象,字典只能对键进行迭代访问

d = {'name': 'tarena', (2002, 1, 1): '生日'}
for x in d:
    # 访问键
    print(x)   # name  (2002, 1, 1)
    # 访问值
    print(d[x])   # tarena 生日

可以用于字典的内建函数

  • len(x) 返回字典键-值对的个数

  • max(x) 返回字典的键的最大值

  • min(x) 返回字典的键的最小值

  • sum(x) 返回字典所有键的和

  • any(x) 真值测试,只对键测试,如果其中一个键为 True,结果为 True

  • all(x) 真值测试,全部键为 True 时,结果才为 True

字典的方法

详见 [字典常用方法](file:///C:/Users/iMing/Desktop/python_base_docs_html/dict.html "字典常用方法")

字典推导式

字典推导式是用可迭代对象依次生成字典内元素的表达式

语法

{键表达式 : 值表达式 for 变量 in 可迭代对象 [if 真值表达式]}

d = {x : x**2 for x in range(10)}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容