Python学习笔记(八):数据类型之 Dictionary

Dictionary(字典)


  • 字典(dictionary)是 Python 中另一个非常有用的内置数据类型。

  • 列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

  • 字典是一种映射类型,字典用大括号 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

  • 键(key)必须使用不可变类型,如数字、字符串、元组。

  • 在同一个字典中,键(key)必须是唯一的;如果一个 key 出现两次,后面的赋值会覆盖掉前面的。

  • 字典可以存储任意类型的对象。

  • 字典的多个键值对之间用逗号分隔。

  • 根据键获取对应的值。

# 定义一个字典:字典是一个无序的键值对的集合
dict1 = {"name":"jack", "age":22, "gender":"男"}

print(dict1)            # 输出字典中所有的数据
print(dict1["name"])    # 通过键获取对应的值

 输出结果:

  • 字典的元素是可以修改的。

# 定义一个字典:字典是一个无序的键值对的集合
dict1 = {"name":"jack", "age":22, "gender":"男"}

dict1["age"] = 33           # 根据键修改对应的值
dict1["birth"] = 19990101   # 向字典中添加元素
print(dict1)

del dict1["gender"]         # 删除字典中的元素
print(dict1)

输出结果:

 

Python 中字典(Dictionary)的内置方法:


1、dict.clear():用于清空字典中所有的数据;

2、dict.copy():复制字典,返回一个复制后的新字典;

3、dict.keys():获取所有的 key,返回的是一个可迭代对象,可以使用 list() 方法来转换为列表;

4、dict.values():获取所有的 value,返回的也是一个可迭代对象,可以使用 list() 方法来转换为列表;

# 定义一个字典:字典是一个无序的键值对的集合
dict1 = {"name":"jack", "age":22, "gender":"男"}

print(dict1.keys())     # 获取所有的 key
print(dict1.values())   # 获取所有的 value
print(dict1.copy())     # 复制字典
dict1.clear()           # 清空字典
print(dict1)

输出结果:

5、dict.fromkeys(seq[, value]):用于创建一个新字典,以序列 seq 中的元素做字典的键,value 为所有键对应的初始值,如果没有指定 value 参数,那么所有键的值默认为 None;

seq = ('name', 'age', 'gender')

dict1 = dict.fromkeys(seq)      # 根据键创建新的字典
print(dict1)

dict2 = dict.fromkeys(seq, 10)  # 创建新字典时指定初始值
print(dict2)

输出结果:

6、dict.get(key, default=None):根据指定的键,获取对应的值;如果键不在字典中,则返回 default 表示的默认值;

dict1 = {"name":"jack", "age":22, "gender":"男"}

print(dict1.get("name"))                # 根据键获取对应的值
print(dict1.get("birth", "20000202"))   # 如果键不在字典中,则返回默认值 "20000202"

输出结果:

7、dict.setdefault(key, default=None):和 get() 方法类似,如果 key 在字典中,返回 key 对应的值;如果 key 不在字典中,则添加 key,并将值设置为 default 表示的默认值,然后返回 default;

dict1 = {"name":"jack", "age":22, "gender":"男"}

# 如果 key 在字典中,则返回 key 的值
print(dict1.setdefault("name"))
print(dict1)

# 如果 key 不在字典中,添加 key,并未 key 指定 default 值
print(dict1.setdefault("birth", "20000202"))
print(dict1)

输出结果:

8、dict.items():该方法返回一个列表,列表的元素为键值表示的元组;

dict1 = {"name":"jack", "age":22, "gender":"男"}
print(dict1.items())

输出结果:

9、dict.update(dict2):把 dict2 里面的 键值对 更新到 dict 中;如果 dict2 中的 key 和 dict 中的 key 相同,则将 dict 中 key 的值更新为 dict2 中该 key 的值;如果 dict2 中的 key 在 dict 中不存在,则将 key/value 添加到 dict 中;该方法没有返回值;

dict1 = {"name":"jack", "age":22}
dict2 = {"gender":"男"}
dict3 = {"name":"lucy", "gender":"女"}

# 如果 dict2 中的 key 在 dict1 中不存在,则将 dict2 中的 key/value 添加到 dict1 中
dict1.update(dict2)
print(dict1)

# 如果 dict2 中的 key 在 dict1 中存在,则将 dict1 中该 key 的值更新为 dict2 中该 key 的值
dict1.update(dict3)
print(dict1)

输出结果:

10、dict.pop(key[, default]):根据给定的键删除对应的键值对数据,返回键对应的值;如果 key 在字典中不存在,则返回 default 值;

dict1 = {"name":"jack", "age":22, "gender":"男"}

# 根据给定的键,删除对应的键值对数据,返回键对应的值
print(dict1.pop("name"))
print(dict1)

# 如果给定的键在字典中不存在,则返回 default 表示的值
print(dict1.pop("birth", "20200101"))

输出结果:

11、dict.popitem():删除字典中的最后一对键值对,并返回该键值对;

dict1 = {"name":"jack", "age":22, "gender":"男"}

print(dict1.popitem())  # 删除最后一对键值对,并返回该键值对
print(dict1)

print(dict1.popitem())
print(dict1)

print(dict1.popitem())
print(dict1)

输出结果:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值