python数据结构——集合的简单讲解与应用

本文介绍了Python中的集合数据结构,包括其无序性、唯一性特点以及创建方法。通过示例展示了如何使用set()函数和大括号创建集合,并演示了集合的常见操作,如元素判断、集合运算(并集、交集、差集)。此外,文章还通过一个数学趣题展示了集合在实际问题中的应用,即通过循环和集合操作推算维纳的年龄。
摘要由CSDN通过智能技术生成

什么是集合

集合是python的数据结构的一种,也是我们比较常见的数据结构,从小学就应该接触过集合,集合是无序的,他没有排列顺序,同时也不会存在相同的数字,就像下面的代码

x = set('123132313')
print(x)
{'3', '1', '2'}

集合中的相同元素会进行自动的合并。

怎么创建集合

就像我上面的一样,set()函数可以帮助我们把其他的数据结构转化为集合,同样我们可以直接用大括号进行创建

x = {1, 2, 3, 3, 2, 1}
print(x)
{1, 2, 3}

但是空的集合我们并不能直接用大括号进行创建,因为那是一种字典了,下面的代码向我们展示了如何创建空集合。

x = set()

集合的函数

我们可以用in来判断集合中是否有该元素

>>> x = {1, 2, 3}
>>> 2 in x
True

同时我们也可以进行合集,交集,并集等操作

>>> a - b                              # 集合a中包含而集合b中不包含的元素
>>> a | b                              # 集合a或b中包含的所有元素
>>> a & b                              # 集合a和b中都包含了的元素
>>> a ^ b                              # 不同时包含于a和b的元素

简单应用

美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。

一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:

“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”

请你推算一下,他当时到底有多年轻。

这个我们怎么计算呐?我们可以创建一个0~9的集合,然后循环11到50(因为他还年轻),这个时候我们需要把数字三次方变成集合,然后求差集,之后我们再进行四次方,如果剩下的集合与他相同,那么说明了就是这个年龄,代码如下:

x = set('0123456789')
for i in range(11, 50):
    if len(set(str(i**3)))== 4:
        x = x - set(str(i**3))
        if len(set(str(i**4))) == 6 and x == set(str(i**4)):
            print(i)
        else:
            x = set('0123456789')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leosaf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值