Python入门知识点分享——(七)集合运算与字典类型

首先要填上昨天集合部分没有讲到的坑——交并补运算,想必大家第一次认识集合都是在高中数学必修一的课本上,高考时也常作为第一道“开胃菜”出现。

下面我就来为大家演示如何用Python计算多个集合的相关关系。

交集的获取需要用到intersection函数,特别指出该函数的作用对象也可以是其他序列数据类型,比如列表和元组。

set1 = {"a", 2.5, -2, 4}
set2 = {"b", 4, bool(4)}
set3 = {4}
list1 = ["a", -2]
print(set1.intersection(set2, set3))
print(set1.intersection(list1))

我修改了一下结果的呈现方式,个人感觉以代码的方式展现要更加美观。 

{4}
{'a', -2}

并集则是用到了union函数,同样地,该函数也适用于其他序列数据类型。

set1 = {"a", 2.5, -2, 4}
set2 = {"b", 4, bool(4)}
set3 = {14}
list1 = ["a", 30]
print(set1.union(set2, set3))
print(set1.union(list1))
{True, 2.5, 4, 14, 'a', 'b', -2}
{2.5, 4, 'a', 30, -2}

对于补集来说,这个词可能不太准确因为我们日常情况下都是以图1的方式表达补集的,但是Python中提供的difference方法则会导致图2的情况,当然图2情况是包含图1的,大家可以放心使用difference方法来获得严格意义上的“补集”。在百度百科上也提供了绝对补集和相对补集两种概念,大家可以自行查阅。

set1 = {"a", 2.5, -2, 4}
set2 = {"b", 4, bool(4)}
set3 = {2.5}
list1 = ["a", 30]
print(set1.difference(set2, set3))
print(set1.difference(list1))
{'a', -2}
{2.5, 4, -2}

 再补充一点,issubset函数可以判断一个集合是否是另一个集合的子集,输出的结果为布尔值。

要注意括号里的集合是父集,函数前面的是子集。

set1 = {"a", 2.5, -2, 4}
set2 = {"a", 4}
list1 = ["a", 30]
print(set2.issubset(set1))
print(set1.issubset(list1))
True
False

这些函数都可以泛用到所有序列数据类型,为我们编程提供了很多便利。

再来介绍一下字典,字典(dictionary)是一种特殊的序列数据类型,它的特殊之处在于其元素不是单独的数字、字符而是“键值对”——由“键”(key)和“值”(value)构成的一对数据。

字典的定义方式是大括号,这一点和集合类似,通过括号里键值对特有的冒号加以区分。另外可以使用dict( )来创建空字典。

dict1 = {"a": 3, -2: [2, 3, 4], 3: "a", (7, 8, 9): {256}}
print(dict1, type(dict1))
dict2 = dict()
print(dict2, type(dict2))
{'a': 3, -2: [2, 3, 4], 3: 'a', (7, 8, 9): {256}} <class 'dict'>
{} <class 'dict'>

键必须不可变所以其数据类型可选的并不多,如数字、字符串和元组;值的数据类型则更灵活,可以是其他序列数据甚至是用户自定义类型。

键的作用就像是列表和元组里的索引,所以我们可以通过键来访问值并对其加以修改。 

dict1 = {"a": 3, -2: [2, 3, 4], 3: "a"}
print(dict1["a"])
dict1["a"] = 10
print(dict1)
del dict1[-2]
print(dict1)
3
{'a': 10, -2: [2, 3, 4], 3: 'a'}
{'a': 10, 3: 'a'}

 除了单独修改某一个值外,我们可以使用update函数来将一个字典中的值通过同名的键赋给另一个字典,原字典的值将会更新,对于原先不存在的键则会添加进新字典。

dict1 = {"a": 3, -2: [2, 3, 4], 3: "a", (7, 8, 9): {256}}
dict2 = {"a": 4, -2: ["234"], 66: 88}
dict1.update(dict2)
print(dict1)
{'a': 4, -2: ['234'], 3: 'a', (7, 8, 9): {256}, 66: 88}

当然我们也能像其他序列数据一样使用len函数输出字典的长度,注意一个键值对记为1。另外字典可以调用values方法将所有的值排成一个新列表。

dict1 = {"a": 3, -2: [2, 3, 4], 3: "a"}
print(len(dict1))
print(dict1.values())
3
dict_values([3, [2, 3, 4], 'a'])

以上就是字典这种数据类型的使用方法,至此我们已经学习了Python所有的数据类型,希望大家能够温故而知新,我们一起努力,一起进步。

欢迎大家批评指正,谢谢。

 

 

 

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值