目标:
学习掌握Python内建数据结构字典。
Python 字典:
生活中我们会有以下需求:
•手机通讯录,我们可以通过人的姓名找到其电话
•学习英文,我们可以通过英文单词查找其中文含义
–help:帮助; 有助于, 有利于
–test:试验; 测验; 考验; 化验;
–work:工作,操作; 著作; 工厂; 行为,事业;
还有购物时,通过商品名称查询商品价格等等,Python提供了一种数据结构“字典”可以方便完成以上功能。
Python字典通过一个 字/词/数字/其他标识 等记录、查找其对应的内容。
字典和序列不同点是:序列使用下标/整数索引访问序列内的对象,而字典使用“关键字“索引访问字典内的对象,另外Python字典是无序的。
如字典:d[‘zhang’] 得到 zhang 的电话,而字符串、列表、元组则以索引范围其中的对象。
键(key)-----值(value) 对
创建Python字典:
1、使用 {} Python 创建字典
Python字典是一种可变容器,可以存储任意类型的数据,字典中的数据以键(key)-值(value)对的形式进行存储,可以通过键访问对应的内容(值)。
格式:
[名称 = ]
[名称 = ]
名称:字典对象的名,可选
键/key:字典的键,用于访问字典中数据的索引
必须不可变对象
同一个字典需要唯一,不能重复
无先后顺序(无序)
此种方式创建字典,注意:
{} 必须有
key:value中间必须有:
各键值对之间用逗号分隔开
value:可以为任意类型:布尔值,数字,字符串,列表,元组,字典……自定义类型
创建字典示例:
d = {} # 空字典
d = { "name": "zhang", "age": 35}
d = { "name": None, "age": 1}
d = { "a": (1,2,3), "b":[4,5,6]}
d = { "a": , True: "真"}
d = {( 39.9, 116.3): "beijing", ( 30.4 120.51): "shanghai"}
d =
试验以下写法可能存在问题
d = { "a": 1, "b": 2, "a": 3}
注意:key不可变类型,唯一不重复,value任意类型
2、使用 dict()函数创建字典
可以在交互模式下使用 help(dict) 查看帮助。
使用dict构造函数创建字典语法:
dict() ---- 创建空字典,同 {}
dict(mapping) 使用mapping对象创建字典(map, zip)
dict(iterable) 使用可迭代对象创建字典
dict(**kwargs):使用 name=value对创建字典
创建字典示例:
d = dict() # 空字典
d = d = dict( ((1, 'a'), (2, 'b')) )
d = dict( ([1, 'a'], [2, 'b']) )
d = dict(one = 1, two = 2, three = 3)
a = [1, 2, 3]
b = ['a', 'b', 'c']
d = dict(zip(a, b))
字典的基本操作:
1、字典的访问
通过[key]方式访问字典值
d = {"name": "xiaoming", "age": 30}
print("d['name'] is ", d['age'])
注:key存在?
2、使用[key]方式添加内容或修改字典的值
字典[键] = 值
d = {}
d["name"] = "xiaoming"
d["age"] = 30
…
d["age"] = 31
3、删除字典元素 del
del 字典[key]
d = {"name": "xiaoming", "age": 30}
del d['name']
del d
注:key, del d/del d[name]
4、字典 in 运算
使用in来判断键在字典中是否存在。
d = {‘a’: 1, ‘b’:2, ‘c’: 3}
‘a’ in d
‘z’ in d
1 in d
思考:遍历字典元素
显示所有的key,显示所以的 value,显示(key,value)
获取字典中元素个数 len函数
d = {‘a’: 1, ‘b’:2, ‘c’: 3}
len(d)
字典的几个方法:
图:字典常用方法
字典推导式:
字典推导式是用可迭的对象依次生成字典内元素的方式创建字典对象。
字典推导式语法
{ 键表达式: 值表达式 for 变量 in 可迭代对象 }
或
{ 键表达式: 值表达式 for 变量 in 可迭代对象 if 条件语句 }
字典推导式语法说明
for in 表达式的 if 子句可以省略,省略后将对所有生成对象进行处理
如果if 条件语句的bool值为False,则可迭代对象生成的数据将被丢弃
字典推导式示例
No = [1001, 1002, 1003, 1004]
names = ["Tom", "Jerry", "Spike", "Tyke"]
animals =
animals =
字典推导式嵌套
语法同列表推导式嵌套
{ 键表达式: 值表达式 for 变量1 in 可迭代对象1 for 变量2 in 可迭代对象2 if 条件语句 }
字典推导式嵌套示例
ninenine = { (m1, m2): str(m1 * m2) for m2 in range(1, 10) for m1 in range(1,10) if (m1
for k,v in ninenine.items():
print(k[0], "x", k[1], "=", v)
领取专属 10元无门槛券
私享最新 技术干货