python中字典的基本形式_10-Python基础知识学习—字典类型

定义字典

在Python中字典是一系列键值对,每个键都与一个值相关联,你可以使用键来访问相关联的值,任何python对象都可以用作字典中的值。 字典用放在 {} 中的一系列键值对表示,键和值之间用冒号分开,键值对之间用逗号分隔 :

info={'name':'tony','age':18,'sex':'male'} #本质info=dict({....})

# 也可以这么定义字典

info=dict(name='tony',age=18,sex='male') # info={'age': 18, 'sex': 'male', 'name': 'tony'}

在{}内用逗号分隔开多元素,每一个元素都是 key:value 的形式:

value可以是任意类型

key必须是不可变类型

通常key应该是str类型,因为str类型会对value有描述性的功能

类型转换

还可以使用dict转换成字典类型:

info = dict([['name', 'tony'], ('age', 18)])

print(info) # info {'age': 18, 'name': 'tony'}

fromkeys方法

Python提供了fromkeys方法,该方法会从第一个参数元组中取出每个值当做key,然后与第二个参数组成键值对放到字典中:

info = {}.fromkeys(("name", "age"), None)

print(info) # {'name': None, 'age': None}

访问字典元素

获取键对应的值

可以通过 变量名[key] 的方式获取键对应的值:

person= {"name": "张三", "age": 12}

print(person["name"]) # 张三

通过这种方式获取值的时候如果key不存在就会报错:

info = {"name": "张三", "age": 12}

print(info["gender"])

# Traceback (most recent call last):

# File "d:/code/Python/demo.py", line 2, in

# print(info["gender"])

# KeyError: 'gender'

也可以使用 get(key) 方法获取指定的键对应的值,使用方括号访问字典中的值的时候,当键不存在的时候就会报错,而使用get就不会,默认情况下会返回None:

info = {"name": "张三", "age": 12}

# 键存在的时候

print(info.get("name")) # 张三

# 键不存在的时候

print(info.get("gender")) # None

也可以通过指定第二个参数返回没有找到时候的默认值:

info = {"name": "张三", "age": 12}

# 键不存在的时候指定值

print(info.get("gender", "man")) # man

遍历字典

默认情况下遍历字典遍历的是字典的key的列表:

info = {"name": "张三", "age": 12}

for key in info:

print(key)

# name

# age

也可以通过字典的 keys方法 返回字典中key的列表:

info = {"name": "张三", "age": 12}

for key in info.keys():

print(key)

# name

# age

字典还提供了 values方法 ,该方法会返回字典中所有的值的列表,通过该列表可以遍历字典中所有的值:

info = {"name": "张三", "age": 12}

for value in info.values():

print(value)

# 张三

# 12

字典提供了 items方法 ,该方法会返回一个键值对的列表,通过遍历该列表可以使用字典键值对的遍历:

info = {"name": "张三", "age": 12}

for item in info.items():

print(item)

# ('name', '张三')

# ('age', 12)

添加、修改和删除字典

添加键值对

可以通过 变量名[key] = value 的方法来创建或者修改字典的键值对:

当key存在的时候就是修改相应的键对应的值

当key不存在的时候就是添加键值对

info = {"name": "张三", "age": 12}

# 键存在的时候是修改值

info["name"] = "李四"

print(info) # {'name': '李四', 'age': 12}

# 键不存在是添加新的键值对

info["gender"] = "man"

print(info) # {'name': '李四', 'age': 12, 'gender': 'man'}

修改键值对

前面说过,当使用 变量名[key] = value 方法的时候,如果key存在就会修改对应的键值对。除此之外字典还提供了 update方法 ,该方法会用新的字典去更新旧的字典:

如果新字典中的键在旧字典中也存在,则修改旧字典对应的键值对

如果新字典中的键在旧字典中不存在,则在旧字典中添加对应的键值对

其它的键值对不做任何操作

old_info = {"name": "张三", "age": 12}

new_info = {"name": "李四", "gender": "man"}

old_info.update(new_info)

print(old_info) # {'name': '李四', 'age': 12, 'gender': 'man'}

字典还提供了 setdefaule方法 :

当key不存在的时候则新增键值对,并将新增的value返回

当key存在的时候则不做任何修改,并返回已存在的key对应的value值

info = {"name": "张三", "age": 12}

# 当key存在则返回原有的值,不作任何修改

print(info.setdefault("name", "李四")) # 张三

print(info) # {'name': '张三', 'age': 12}

# 当key不存在则添加键值对,并返回新值

print(info.setdefault("gender", "man")) # man

print(info) # {'name': '张三', 'age': 12, 'gender': 'man'}

删除键值对

可以使用通用的 del方法 来删除对应的键值对:

info = {"name": "张三", "age": 12}

del info["name"]

print(info) # {'age': 12}

注意: 通过该方法删除键值对的时候,如果键不存在则会报错。

字典本身提供了 pop方法 ,用来删除指定的key对应的键值对并返回值:

info = {"name": "张三", "age": 12}

print(info.pop("name")) # 张三

print(info) # {'age': 12}

注意: 通过该方法删除键值对的时候,如果键不存在则会报错。

字典还提供了 popitem()方法 ,该方法用来随机删除一组键值对并将删除的键值放到元组内返回:

info = {"name": "张三", "age": 12}

print(info.popitem()) # ('age', 12)

注意: 当在空字典上使用该方法的时候会报错。

字典还提供了 clear()方法 用来清空字典:

info = {"name": "张三", "age": 12}

info.clear()

print(info) # {}

其它方法

成员运算符

a in dic: 判断a是不是字典dic的键

a not in dic: 判断a是不是不是字典dic的键

info = {"name": "张三", "age": 12}

print("name" in info) # True

print("name" not in info) # False

len方法

该方法用来返回字典中键值对的个数:

info = {"name": "张三", "age": 12}

print(len(info)) # 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值