python中字典的基本操作

字典的创建

1.直接创建
user = {"name": "bob", "age": 18}
2.使用dict函数
# 1.使用dict函数可以初始化一个字典
a = dict()
print(a)   #{}

# 2.为dict指定关键字参数创建字典
b = dict(name="tom", age=10)
# 注意这里的key都需要写在引号中
print(b) # {'name': 'tom', 'age': 10}

# 3.传入多个列表或元组参数作为 key-value 对
user_info = [('name', 'tom'), ('age', 18), ('sex', 'man')]
user = dict(user_info)
print(user) # {'name': 'tom', 'age': 18, 'sex': 'man'}

car_list = [['BMW', 8.5], ['BENS', 8.3], ['AUDI', 7.9]]
car = dict(cars)
print(car) # {'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9}

字典的增删改查

1.增
# 如果要为 dict 添加 key-value 对,只需为不存在的 key 赋值即可
user = {"name": "tom"}
user["age"] = 18
print(user) # {'name': 'tom', 'age': 18}

# update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典。在执行 update() 方法时,如果被更新的字典中己包含对应的 key-value 对,那么原 value 会被覆盖;如果被更新的字典中不包含对应的 key-value 对,则该 key-value 对被添加进去。
a = {"name": "tom"}
b = {"age": 18}
a.update(b)
print(a) # {'name': 'tom', 'age': 18}
2.删
# 如果要删除宇典中的 key-value 对,则可使用 del 语句
user = {'name': 'tom', 'age': 18, 'sex': 'man'}
del user["name"]
print(user) # {'age': 18, 'sex': 'man'}

# pop() 方法用于获取指定 key 对应的 value,并删除这个 key-value 对。
user = {'name': 'tom', 'age': 18, 'sex': 'man'}
name = user.pop("name")
print(name) # tom
print(user) # {'age': 18, 'sex': 'man'}

# popitem() 方法用于弹出字典中的最后一个 key-value 对。(针对python3.6字典有序)
user = {'name': 'tom', 'age': 18, 'sex': 'man'}
user.popitem()
print(user) # {'name': 'tom', 'age': 18}

# clear() 用于清空字典中所有的 key-value 对,对一个字典执行 clear() 方法之后,该字典就会变成一个空字典
user.clear()
print(user) # {}
3.改
# 如果对 dict 中存在的 key-value 对赋值,新赋的 value 就会覆盖原有的 value,这样即可改变 dict 中的 key-value 对。
user = {'name': 'tom', 'age': 18, 'sex': 'man'}
user["name"] = "bob"
print(user) # {'name': 'bob', 'age': 18, 'sex': 'man'}
4.查
# 基本用法
user = {'name': 'tom', 'age': 18, 'sex': 'man'}
print(user["name"]) # tom

# 若查询的key不在字典中会报错
print(user["address"]) # KeyError: 'address'
# 这个时候我们可以用get方法, 若查不到我们可返还一个默认值
print(user.get("address", "上海")) # 上海


# 如果要判断字典是否包含指定的 key,则可以使用 in 或 not in 运算符。需要指出的是,对于 dict 而言,in 或 not in 运算符都是基于 key 来判断的。
print("address" in user) # False
print("address" not in user) # True

字典的常用方法

items()、keys()、values()
# items()、keys()、values() 分别用于获取字典中的所有 key-value 对、所有 key、所有 value。
user = {'name': 'tom', 'age': 18, 'sex': 'man'}
for key in user.keys():
    print(key)
# name
# age
# sex

for value in user.values():
    print(value)
# tom
# 18
# man

for key, value in user.items():
    print(key, value)
# name tom
# age 18
# sex man

字典的高级方法

setdefault()方法

setdefault() 方法也用于根据 key 来获取对应 value 的值。但该方法有一个额外的功能,即当程序要获取的 key 在字典中不存在时,该方法会先为这个不存在的 key 设置一个默认的 value,然后再返回该 key 对应的 value。

总之,setdefault() 方法总能返回指定 key 对应的 value;如果该 key-value 对存在,则直接返回该 key 对应的 value;如果该 key-value 对不存在,则先为该 key 设置默认的 value,然后再返回该 key 对应的 value。

user = {'name': 'tom', 'age': 18, 'sex': 'man'}
# 设置默认值,该key在dict中不存在,新增key-value对
print(user.setdefault("address", "bbb")) # bbb
print(user) # {'name': 'tom', 'age': 18, 'sex': 'man', 'address': 'bbb'}
# 设置默认值,该key在dict中存在,不会修改dict内容
print(user.setdefault('name', 'tom')) # tom
print(user) # {'name': 'tom', 'age': 18, 'sex': 'man', 'address': 'bbb'}
fromkeys()方法

fromkeys() 方法使用给定的多个 key 创建字典,这些 key 对应的 value 默认都是 None;也可以额外传入一个参数作为默认的 value。该方法一般不会使用字典对象调用(没什么意义),通常会使用 dict 类直接调用。

# 使用列表创建包含2个key的字典
user = dict.fromkeys(['name', 'age'])
print(user) # {'name': None, 'age': None}
# 使用元组创建包含2个key的字典
user = dict.fromkeys(('name', 'age'))
print(user) # {'name': None, 'age': None}
# 使用元组创建包含2个key的字典,指定默认的value
user = dict.fromkeys(('name', 'age'), 'tom')
print(c_dict) # {'name': 'tom', 'age': 'tom'}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值