【编程】Python 字典

字典是由数据类型相似的元素构成的数组,使用键值对 代替索引。在Python中,就是映射的概念,将键对象和值对象建立对应关系。字典靠键做索引,并且是有关联性的数组。键是唯一的,但值不唯一。字典值的类型可以是任意类型,但是键是不可编辑的类型,如字符串,数字,或元组。

Python的字典是被优化的哈希表。它实际是将键进行了哈希索引的数组。对于大量的数据统计,字典提供了非常有效率的查询操作。一对大括号表示一个空字典: {}。

Python 字典操作

创建一个空字典

例子

directions = {} 
print(directions)

输出

{}

如何创建字典

在大括号 {}里面写入键值对,表示字典的内容。

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
print (directions)

输出

{1: ‘东’, 2: ‘西’, 3: ‘南’, 4: ‘北’}

访问字典的值

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
print (directions[1])
print (directions[4])

输出


删除字典的值

使用键可以删除字典元素。

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
del directions[2]
print (directions)

输出

{1: ‘东’, 3: ‘南’, 4: ‘北’}

clear() 方法可以删除字典的全部内容。

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
directions.clear()
print (directions)

输出

{}

使用 del 命令删除整个字典。

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
del directions
print(directions)

输出

Traceback (most recent call last): File “sample.py”, line 11, in & module & print (directions)
NameError: name ‘directions’ is not defined

因为字典已经不存在了,所以报错。

更新字典的值

例子

students = {} 
students['ID']=1001
students['姓名']="John"
students['年龄']=22
print(students)
students['年龄'] = 23 # 更新年龄
students['国家'] = 'USA' # 添加新键值
print(students)

输出

{‘姓名’: ‘John’, ‘ID’: 1001, ‘年龄’: 22}
{‘姓名’: ‘John’, ‘ID’: 1001, ‘国家’: ‘USA’, ‘年龄’: 23}

检索整个字典

可以使用循环遍历整个字典。遍历字典的时候,使用 items() 方法可以同时遍历键值对。

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
for key, value in directions.items():
print(key, value)

输出

1 东
2 西
3 南
4 北

将键值检索到列表中

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
keys = list(directions.keys())
print(keys)
vals = list(directions.values())
print(vals)

输出

[1, 2, 3, 4]
[‘东’, ‘西’, ‘南’, ‘北’]

任意性的键值

使用任意性的键值表达式,可以利用字典式推导创建字典。

例子

arb_dictionary = {i: i**2 for i in (10, 20, 30)} 
print(arb_dictionary)

输出

{10: 100, 20: 400, 30: 900}

字典的复制

使用 copy()方法可以复制字典

例子

directions = {} 
directions[1]="东"
directions[2]="西"
directions[3]="南"
directions[4]="北"
dir1 = directions.copy()
print(dir1)

输出

{1: ‘东’, 2: ‘西’, 3: ‘南’, 4: ‘北’}

字典合并

update() 方法可以合并一个字典的内容到另一个字典,并且覆盖掉相同键的内容。

例子

dict1 = {1:'a',2:'b',3:'c'} 
dict2 = {4:'d',5:'e'}
dict1.update(dict2)
print(dict1)

输出

{1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’, 5: ‘e’}

字典的排序

operator 模块定义了一般化和项的查询工具。有利于map(), sorted(), itertools.groupby(), 或其他的函数在执行的时候需要进行字段提取形成参数。

按键进行字典的排序

例子

import operator 
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(),key=operator.itemgetter(0))
print(sorted_x)

输出

[(0, 0), (1, 2), (2, 1), (3, 4), (4, 3)]

按值进行字典的排序

例子

import operator 
x = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
sorted_x = sorted(x.items(), key=operator.itemgetter(1))
print(sorted_x)

输出

[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]



【编程】Python 元组
【编程】Python 列表 List
【编程】Python with 语句
【游戏】益智数独挑战脑力
【编程】Python 函数
【编程】Python循环控制
【编程】Python For 循环语句
【编程】Python循环和控制语句
【编程】Python 条件语句

此条目发表在人工智能, 服务器, 程序开发分类目录,贴了, , , , 标签。将固定链接加入收藏夹。