Python入门之字典--字典的定义及常规操作

字典是无序可变的键值对集合,下面介绍字典的定义及常规操作。

# 以下代码编译环境是Python3
# 字典:无序可变的键值对集合

# 定义
# 方式1:{key:value, key:value...}
person = {"name": "Sara", "age": 18}
print(person["name"], person["age"])  # 结果为Sara 18
# 方式2:类调用   dict.fromkeys(seq, value=None),seq为一个序列,value是对应的数值
dict1 = dict.fromkeys("abc", 18)
print(dict1)      # 结果为{'a': 18, 'b': 18, 'c': 18},这种赋值方式会使得key的值都一样
# 注意事项
# 1、key不能重复,若重复,后面的值会把前面的值覆盖
d = {"a": 1, "b": 2, "a": 4}
print(d)   # 结果为{'a': 4, 'b': 2}
# 2、key必须为不可变类型,列表、字典等都是可变类型,因为key通过哈希表存储的

# 操作
# 1、增加 dict[key] = value,当key在原字典中不存在时,则为新增操作
person = {"name": "Sara", "age": 18}
person["height"] = 165
print(person)   # 结果为{'name': 'Sara', 'age': 18, 'height': 165}

# 2、删除
# 2.1  del dict[key]
person = {"name": "Sara", "age": 18}
del person["name"]
print(person)    # 结果为{'age': 18}
# 2.2、dict.pop(key)   删除键值对并返回key所对应的值
person = {"name": "Sara", "age": 18}
print(person.pop("name"))   # 结果为Sara
print(person)     # 结果为{'age': 18}
# 2.3、 dict.popitem()   删除按关键字进行升序排列后的第一组键值对,并以元组形式返回
person = {"name": "Sara", "age": 18}
print(person.popitem())   # 结果为('age', 18)
print(person)     # 结果为{'name': 'Sara'}
# 2.4、dict.clear()  清空字典内容,但字典本身存在
person = {"name": "Sara", "age": 18}
person.clear()
print(person)     # 结果为{}

# 3、更改
# 3.1、修改单个键值对,只能修改值,不能修改key,若没有指定的key,则变成增加操作
person = {"name": "Sara", "age": 18}
person["age"] = 19
print(person)     # 结果为{'name': 'Sara', 'age': 19}
# 3.2、批量修改   oldDic.update(newDic)
person.update({"name": "Jone", "age": 11, "address": "BJ"})
print(person)   # 结果为{'name': 'Jone', 'age': 11, 'address': 'BJ'}

# 4、查询
# 4.1、查询单个值  dict[key]
person = {"name": "Sara", "age": 18}
print(person["name"])        # 结果为Sara,若没有找到则报错
# 4.2、dict.get(key, default)
# 返回键值对的值,如果没有找到关键字则返回默认值,如果没有默认值,则返回None,不会报错
person = {"name": "Sara", "age": 18}
print(person.get("name1", 2))      # 结果为2
# 4.3、dict.setdefault(key, default)
# 返回键值对的值,若没有找到,则把键值对增加到字典中,并把默认值赋值给查询的关键字,
# 返回关键字所对应的值
person = {"name": "Sara", "age": 18}
res = person.setdefault("address", 11)
print(res, person)   # 结果为11 {'name': 'Sara', 'age': 18, 'address': 11}
# 4.4、查询所有的值
# 查询所有的value
person = {"name": "Sara", "age": 18}
print(person.values())   # 结果为dict_values(['Sara', 18])
# 4.5、查询所有的key
print(person.keys())     # 结果为dict_keys(['name', 'age'])
# 4.6、查询所有的键值对
print(person.items())    # 结果为dict_items([('name', 'Sara'), ('age', 18)])
# 4.7、查询字典的长度
print(len(person))   # 结果为2

# 5、遍历
# 方式1:先遍历所有关键字,再根据关键字遍历所有值
person = {"name": "Sara", "age": 18}
keys = person.keys()
for key in keys:
    print(key, person[key])
# 方式2:直接遍历所有键值对
items = person.items()
for k, v in items:
    print(k, v)

# 6、判定
# in 和not in只判断关键字在不在字典中,不会判断数值
person = {"name": "Sara", "age": 18}
print("name" in person)   # 结果为True
print(18 in person)       # 结果为False

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值