python中的字典和集合

1.字典

字典属于⽆序序列,元素存放⽆序,是通过哈希⽅式进⾏数据存取的,字典是⼀个可变容器,字典中保存⼀个个的键值对:key : value。我们通过key来获取对应的值,很类似我们的汉语字典。
字典的特点是字典中键必须是唯⼀的,必须是不可变类型,字典查找速度⽐较快。

1.1.字典的创建

我们可以通过以下的方式创建字典,

d1 = {}  # 创建空字典
d2 = {"name":"无主", "age":20, "name":"范围"}  # 键相同,则后面的值覆盖前面的值
d3 = dict()  # 创建空字典
d4 = dict(a=3, b=4)  # 其中a和b为字典的键,3和4为对应的值

1.2.字典的常用操作

1.2.1.查询

我们可以通过以下的方式对字典进行查询,

d1 = {"a":10, "b":20, "c":30}
print(d1["a"])  # 通过键来访问值
print(d1.get("a"))  # 使用get()函数访问值

运行结果如下,

10
10

其中,通过键来访问值和使用get()函数访问值的区别在于,在通过键来访问值中,如果键不存在,python会报错。例如,

d1 = {"a":10, "b":20, "c":30}
print(d1["m"])

运行结果如下,

	print(d1["m"])
KeyError: 'm'

但是,在通过get()函数访问值中,如果被查询的键不存在,系统不会报错,默认会返回None。例如,

d1 = {"a":10, "b":20, "c":30}
print(d1.get("m"))

运行结果如下,

None

1.2.2.添加

字典中给不存在的键赋值,就是添加。例如,

d1 = {"a":10, "b":20, "c":30}
d1["abc"] = 300
print(d1)

运行结果如下,

{'a': 10, 'b': 20, 'c': 30, 'abc': 300}

1.2.3.删除

我们可以通过以下的方式对字典中的键值对进行删除,

# 通过pop()函数进行删除
d1 = {"a":10, "b":20, "c":30}
d1.pop("a")
print(d1)

# 通过系统关键字del进行删除
d1 = {"a":10, "b":20, "c":30}
del d1["b"]
print(d1)

# 清空字典
d1 = {"a":10, "b":20, "c":30}
d1.clear()
print(d1)

运行结果如下,

{'b': 20, 'c': 30}
{'a': 10, 'c': 30}
{}

1.2.4.合并

我们可以通过update()函数对字典进行合并,

d1 = {"a": 1, "b": 2}
d2 = {"c": 3, "d": 4}
d1.update(d2)
print(d1)

运行结果如下,

{'a': 1, 'b': 2, 'c': 3, 'd': 4}

1.2.5.遍历

我们可以以下方式对字典进行遍历,

# 只遍历键
d1 = {"a":10, "b":20, "c":30}
for key in d1.keys():
    print(key)
print()

# 只遍历值
d1 = {"a":10, "b":20, "c":30}
for value in d1.values():
    print(value)
print()

# 通过键遍历值
d1 = {"a":10, "b":20, "c":30}
for key in d1.keys():
    print(key, "----", d1[key])
print()

# 通过items()函数进行遍历
d1 = {"a":10, "b":20, "c":30}
for key, value in d1.items():
    print(key, "----", value)

运行结果如下,

a
b
c

10
20
30

a ---- 10
b ---- 20
c ---- 30

a ---- 10
b ---- 20
c ---- 30

1.2.6.获取键值对个数和成员判断

字典中的获取键值对个数(len())和成员判断(in)的操作和列表相同。

2.集合

python中集合的特点是不允许有重复元素,如果添加重复元素,则会⾃动过滤,可以进⾏交集、并集的运算。
集合的本质是一种⽆序且⽆重复元素的数据结构。

2.1.创建集合

我们可以通过以下方式创建集合,

s1 = set()  #空集合不能是{},这是字典
print(s1)

s2 = {1,2,3,4}
print(s2)

print(set([1, 2, 3]))

print(set((4, 5, 6)))

print(set("hello"))

print(set({"7": 1, "8": 2, "9": 3}))  # 通过字典创建集合,会得到一个键的集合

运行结果如下,

set()
{1, 2, 3, 4}
{1, 2, 3}
{4, 5, 6}
{'h', 'o', 'e', 'l'}
{'7', '8', '9'}

2.2.集合操作

2.2.1.增加

我们可以通过以下方式增加集合中的元素,

# 通过add()函数添加单个元素
s1 = {1, 2, 3, 4}
s1.add(5)
s1.add((6, 7))  # 只能添加元组元素,列表元素和字典元素无法添加
print(s1)

# 通过update()函数添加多个元素
s1 = {1, 2, 3, 4}
s1.update([5, 6, 7])
s1.update({8: 2, 9: 3})  # 将字典的键添加到元素中
s1.update("hello")
print(s1)

运行结果如下,

{1, 2, 3, 4, 5, (6, 7)}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'o', 'h', 'l', 'e'}

2.2.2.删除

我们可以通过以下方式删除集合中的元素,

# 通过remove()函数删除单个元素
s1 = {1, 2, 3, 4, 5, 6}
s1.remove(1)
print(s1)
# 如果删除元素不存在,则系统报错

# 通过pop()函数删除单个元素
s1 = {1, 2, 3, 4, 5, 6}
s1.pop()  # 删除几何中第一个元素
print(s1)

# 通过discard()函数删除单个元素
s1 = {1, 2, 3, 4, 5, 6}
s1.discard(6)
s1.discard(10)  # 删除元素不存在,不会报错
print(s1)

运行结果如下,

{2, 3, 4, 5, 6}
{2, 3, 4, 5, 6}
{1, 2, 3, 4, 5}

2.2.3.集合长度和成员判断

集合中的获取键值对个数(len())和成员判断(in)的操作和列表相同。

2.2.4.并集、交集和差集

我们可以通过"|"、"&"、和"-"实现集合之间求并集、交集和差集的计算,

s1 = {1, 2, 3, 4}
s2 = {2, 3, 4, 5}
print(s1 | s2)  # 并集
print(s1 & s2)  # 交集
print(s1 - s2)  # 差集

运行结果如下,

{1, 2, 3, 4, 5}
{2, 3, 4}
{1}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值