Python-集合和内置方法

集合

集合用符号{}

集合里面的元素可重复

s = {1,1,2,3,3,4,5,6,7,8,8,8}
print(s,type(s))  ##输出的时候,自动将重复的元素去掉

在这里插入图片描述
定义一个空集合

s1 = {} #默认情况下是dict(字典)
print(type(s1)) 
s2 = set([])    ##将空列表转换为集合
print(type(s2))

在这里插入图片描述
列表的快速去重 (先将列表转换为集合,去掉重复元素,再转换为列表)

li = [1,1,2,3,3,4,5,6,7,8,8,8]
print(list(set(li)))

在这里插入图片描述
集合中常用的方法

 集合是一个可变的数据类型
 添加顺序和存储数据的顺序是不同的
 s = {6,7,8,9,2,3,1,4,5}
 print(s)

在这里插入图片描述
添加

 s.add(10)
 s.add(0)
 print(s)

在这里插入图片描述
增加多个元素

 s = {6,7,8,9,2,3,1,4,5}
 s.update({7,12,13,14})
 print(s)

在这里插入图片描述
删除

 a = s.pop()
 print(s)
 print(a)

 删除指定元素
s = {6,7,8,9,2,3,1,4,5}
a = s.remove(5)
print(a)
print(s) 

在这里插入图片描述
在这里插入图片描述
排序

s1 = {4,8,1}
print(sorted(s1))

在这里插入图片描述
并集

s1 = {4,8,1}
s2 = {4,2,1}
print('并集:',s1.union(s2))
print('并集:',s1|s2)  

在这里插入图片描述
交集

print('交集:', s1.intersection(s2))
print('交集:', s1 & s2) 

在这里插入图片描述
差集

 # # s1和s2的差集:s1中有哪些s2中没有的元素
print('差集:', s1.difference(s2))
print('差集:', s1 - s2)

在这里插入图片描述
对等差分:并集 - 交集

 print('对等差分',s1.symmetric_difference(s2))
 print('对等差分',s1 ^ s2)

在这里插入图片描述
s3是否是s4的子集

s3 = {'redhat','westos','python'}
s4 = {'redhat','westos','linux'} 
print(s3.issubset(s4))
print(s3.isdisjoint(s4))  ##两个集合是不是不相交

在这里插入图片描述

集合的特性

集合支持的特性 成员操作符 for循环

s = {1,2,3}
print(1 in s)
print(1 not in s)

for i in s:
     print(i,end='')  ##不换行打印
print()              ##打印空白行
print('hello hedan')

在这里插入图片描述
在这里插入图片描述
练习02
华为机测题:

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性
他先用计算机生成了N个1~1000之间的随机整数(N<=1000)
,N是用户输入的,对于
其中重复的数字,只保留一个,把其余相同的数字去掉,
不同的数对应着不同的学生的学号,
然后再把这些
数从小到大排序,按照排好的顺序去找同学做调查,
请你协助明明完成“去重”与排序工作
sorted()

方1:

import random
s = set({})
N = int(input('N:'))
for i  in range(N):
   num = random.randint(1,1000)
   s.add(num)
print(sorted(s))

在这里插入图片描述
方二:

import random
list=[]
NUM = int(input('输入个数:'))
i = 1
while i<=NUM:
    num = random.randint(1,1000)
    i+=1
    list.append(num)
print(sorted(set(list)))

在这里插入图片描述
python中常用的内置方法

>>> min(5,7,2)    ##最小值
2
>>> max(5,7,2)    ##最大值
7
>>> sum(range(10))  ##10以内数之和(不包含10)
45
>>> sum(range(1,5))
10
>>> sum(range(1,101,2))   ##奇数之和
2500 
>>> sum(range(2,101,2))   ##偶数之和
2550

枚举:返回索引值和对应的value

enumerate:是python的内置函数,在for循环中得到计数的用法

例如:

 for i, v in enumerate('hello'):
     # print(i,v)
     print(i ,'---->' ,v )

在这里插入图片描述
zip

 zip()接受一系列可迭代对象作为参数,将不同对象中相对应的元素打包成一个元组(tuple),
 返回由这些元组组成的list列表,如果传入的参数的长度不等,则返回的list列表的长度和传入参数
 中最短对象的长度相同

例如:

s1 = '123'
s2 = 'abc'
for i in zip(s1,s2):
    print(i)
for i in zip(s1,s2):
    print('-'.join(i))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值