python第四章(下)

python系列

python第一章(上)
python第一章(下)
python第二章
python第三章(上)
python第三章(下)
python第四章(上)



前言

  • 集合与集合操作

集合

简介

  • Python中的集合和数学上的集合概念很类似,用来存放一组无序互不相同的元素。同时,组成集合的元素必须是不可变类型
  • 集合除了支持数学中的集合运算外,主要用来进行关系测试消除重复元素

创建

直接创建

set1={1,2,3,4,3}
print(set1)
set2={(1,2),(4,3)}
print(set2)
  • 有相同元素自动去重
  • 元素可以放进去,列表不行,因为列表可变
  • 运行截图
    在这里插入图片描述

set函数

  • 将序列转换为集合
s='hello python'
s=set(s)
print(s)
s2=[1,1,2,5,6]
s2=set(s2)
print(s2)
  • 运行截图
    在这里插入图片描述

空集合

se={}
print(type(set))
set1=set()
print(type(set1))
  • 创建空集合不能直接用一对大括号,不然是字典
  • 要用不带参数的set函数
  • 运行截图
    在这里插入图片描述

访问

  • 集合的元素是无序的,也没有键和值的概念,所以集合元素的访问要么通过集合名作整体输出,要么通过for循环实现元素遍历。
st={1,2,3,5,6}
print(st)
for i in st:
    print(i)
  • 运行截图
    在这里插入图片描述

操作

添加

函数或方法描述
S.add(item)将参数item作为元素添加到集合S中,如果item是序列,则将其作为一个元素整体加入集合(作为参数的item只能是不可变的数据。)
S.add(items)将参数序列items中的元素拆分去重后加入集合。(参数items可以是可变数据。)

删除

函数或方法描述
S.remove(item)将指定元素item从集合S中删除。如果item在集合中不存在,系统报错。
S.discard(items)将指定元素item从集合S中删除。如果item在集合中不存在,系统正常执行,无任何输出。
S.pop(item)从集合S中随机删除并返回一个元素。
S.clear(items)清空集合中所有的元素。

成员判断

函数或方法描述
item in S判断元素item是否在集合S中,在,返回True;不在,返回False。可配合pop实现集合的清空操作。

集合的数学运算

在这里插入图片描述

方法和运算符功能
A.unionB求并集
A.intersectionB求交集
A.difference(B)求差集
A.symmetric_difference(B)求对称差集

  • 也可以直接用运算符来代替方法
  • A|B(求并集)
  • A&B(求交集)
  • A-B(求差集)
  • A^B(求对称差集)
A={1,2,3,4,5}
B={4,5,6,7,8}
print(A|B)
print(A.union(B))
  • 运行截图
    在这里插入图片描述
A={1,2,3,4,5}
B={4,5,6,7,8}
print(A&B)
print(A.intersection(B))
  • 运行截图
    在这里插入图片描述
A={1,2,3,4,5}
B={4,5,6,7,8}
print(A-B)
print(A.difference(B))
  • 运行截图
    在这里插入图片描述
A={1,2,3,4,5}
B={4,5,6,7,8}
print(A^B)
print(A.symmetric_difference(B))
  • 运行截图
    在这里插入图片描述
  • 例子,生成20个0~20的随机数并输出其中互不相同的数。
import random
ls=[]
for i in range(20):
    ls.append(random.randint(0,20))
s=set(ls)
print("生成20个数是:",ls)
print("互不相同的数字是:",s)
  • 运行截图
    在这里插入图片描述
    -IEEE和TIOBE是两大热门编程语言排行榜。截止2018年12月,IEEE榜排名前五的编程语言分别是:Python、C++、C、Java和C#;TIOBE榜排名前五的编程语言是:Java、C、Python、C++、VB.NET。请编写程序求出:
  • 上榜的所有语言;
  • 在两个榜单同时进前五的语言;
  • 只在IEEE榜排进前五的语言;
  • 只在一个榜单进前五的语言。
setI={'Python','C++','C','Java','C#'}
setT={'Java','C','Python', 'C++','VB.NET'}
print("IEEE2018排行榜前五的编程语言有:")
print(setI)
print("TIOBE2018排行榜前五的编程语言有:")
print(setT)

print("前五名上榜的所有语言有:")
print(setI | setT)

print("在两个榜单同时进前五的语言有:")
print(setI & setT)

print("只在IEEE榜进前五的语言有:")
print(setI - setT)

print("只在一个榜单进前五的语言:")
print(setI ^ setT)
  • 运行截图
    在这里插入图片描述
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

X在学了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值