Python:字典

字典 dict

**什么是字典**
	1. 字典是一种可变的容器,可以存储任意类型的数据
	2. 字典中的每个数据都是用"键"(key) 进行索引的,而不
		像序列(str,list,tuple)可以用整数进行索引
	3. 字典中的数据没有先后顺序关系,字典的存储是无序的
	4. 字典中的数据以键(key)-值(value)对形式进行存储
	5. 字典的键不能重复,且只能用不可变类型作为字典的键

**创建字典的字面值方式:**
	字典的表示方式以{} 括起来,以冒号(:) 分隔键值对,各键
	值对之间用逗号分隔开

**创建空字典:**
	d = {}
**创建非空字典:**
	d = {"姓名": "tarena", "年龄": 15}
	d = {"one": 1, "two": 2}
	d = {1: "One", 2: "二", 3: [1,2,3]}
	d = {"a": list(range(10))}
	d = {"a": {"b": 100, "c":[1, 2, 3]}}

**创建字典的构造函数 dict:**
	dict()   # 生成一个空的字典 等同于 {}
	dict(iterable)  用可迭代对象创建一个列表
	dict(**kwargs)  关键字传参形式生成一个字典

示例:
	d = dict()   
	L = [ (1, 2), [3, 4], "AB" ]
	d = dict(L)  # {1: 2, 3: 4, 'A': 'B'}
	d = dict(name="tarena", age=15)
    # d = {'age': 15, 'name': 'tarena'}

字典的键必须为不可变类型的值

***可变的类型有四种:
 	list(列表), dict(字典), set(集合),
 	bytearray(字节数组)***
(除上述四种其它为不可变类型)

**字典基本操作**
字典的键索引
	语法:
  		字典[键]
作用:
  	用键获取字典的键对应的值
示例: 
	d = {'name': 'tarena', 'age': 16}
	print(d['name'], "的年龄是", d['age'])

添加和修改字典的元素

语法:
	字典[键] = 值
说明:
	键不存在时,创建键,并让键绑定对应的值
	键存在,修改键绑定的值
示例:
	d = {}
	d['name'] = "小张"  # 添加一个键值对
	d['年龄'] = 20   # 添加一个键值对
	d['年龄'] += 1   # 修改'年龄' 这个键对应的值

删除字典元素

del 语句
	语法:
  		del 字典[键]
示例:
	d = dict(name="小张", age=20)
	del d['age']
	print(d)  # {'name': '小张'}

字典的键判断 in , not in运算符

可以用 in 运算符判断一个键是否存在于字典中,如果存在
则返回True, 否则返回False
	not in 返回值与 in 相反
例如:
	d = {'name' : 'tarena', 'age': 15}
	'name' in d  # True
	15 in d      # False
	'age' not in d  # False

字典的迭代访问

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

示例:
	d = {0:'零', 5:'伍', 1:'壹', 2:'贰'}
	for n in d:
    	print(n)   # 0, 1, 2, 5


**可以用于字典的函数:**
	len(x)    返回字典的键值对的个数
	max(x)    返回字典的键的最大值
	min(x)    返回字典的键的最小值
	sum(x)    返回字典的所有键的和
	any(x)    真值测试,只对键进行测试,只要有一个键为真值
        		结果就为True
	all(x)    真值测试,所有键的真值结果才为True
示例:
	d = {0:'零', 5:'伍', 1:'壹', 2:'贰'}
	len(x)
	...

示例:
	d = {0:'零', 5:'伍', 1:'壹', 2:'贰'}
	for t in d.items():
    	print(t)   # (0, '零'), (1, '壹'), (2, '贰'), (5, '伍')

for k, v in d.items():
    print("键是", k, '值是', v)

字典推导式

字典推导式是用可迭代对象来创建字典的表达式

语法:
	{键表达式: 值表达式 for 变量 in 可迭代对象
    	[if 真值表达式]}
	注: []的内容代表可省略
示例:
	生成一个字典: 键为数字0~9, 值为键的平方
	如生成 {0: 0, 1:1, 2:4, 3: 9, ... 9:81}
	d = {x: x**2 for x in range(10)}
	print(d)

**字典推导式的嵌套**
	语法同列表推导式嵌套

字典 VS 列表

1. 都是可变的容器
2. 索引方式不同,列表用整数索引,字典用键索引
3. 列表的存储是有序的,字典的存储是无序的
4. 字典的插入,删除,修改的速度可能会快于列表(重要)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值