python--集合

博客主要介绍了Python集合的相关知识,包括集合的定义,其元素不可重复,可用于列表去重;集合的特性,如仅支持成员操作符,可进行for循环等;还阐述了集合的常用方法,如添加、删除、求并集、交集等,最后给出了相关应用例题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、定义集合
1)集和里面的元素是不可重复的

s= {1,2,4,6,11,3,4,1,2}
print(s,type(s))

在这里插入图片描述

2)如何定义一个空集和

s2 = {} 				## 默认情况下是dict(字典)
print(s2,type(s2))
s3 =set([])
print(s3,type(s3)

在这里插入图片描述

3)集合可以为帮助列表去重

	li = [1,2,4,6,1,2]
	print(list(set(li)))		##把列表转换成集合,再转换成列表

在这里插入图片描述
2、集合的特性
1)集和支持的特性只有 成员操作符(索引 切片 重复 连接 均不支持)

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

在这里插入图片描述
2)for循环
s= {1,2,3}
for i in s:
print(i,end=’’)
print()
print(’~~~~~~~~~~’)

在这里插入图片描述
3)for+index

	s= {1,2,3}
	for i,v in enumerate(s):
	    print('index: %s,value:%s' %(i,v))			##查找并对应索引值

在这里插入图片描述

3、集合的常用方法

1)添加

	s={6,7,8,1,4,5}
	s.add(8)
	s.add(10)
	print(s)

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

	s={6,7,8,1,4,5}
	s.update({2,3,10})
	print(s)

在这里插入图片描述

3)删除
s={1,2,3,4,5}
s.pop() #从前往后删
print(s)
s.pop()
print(s)
在这里插入图片描述

4)删除指定元素(元素要存在)

	s={1,2,3,4,5}
	s.remove(1)			##删除元素1
	print(s)

在这里插入图片描述

5)并集

	s1 ={1,2,3}
	s2 ={2,3,4}
	print('并集:  ',s1.union(s2))		##表示法1
	print('并集:  ',s1 | s2)				##表示法2

在这里插入图片描述
6)交集

	s1 ={1,2,3}
	s2 ={2,3,4}
	print('交集:  ',s1.intersection(s2))		##表示法1
	print('交集:  ',s1 & s2)					##表示法2

在这里插入图片描述
7)差集

	s1 ={1,2,3}
	s2 ={2,3,4}
	print('差集:  ',s1.difference(s2))			##表示法1,即表示s1中有,s2中没有的
	print('差集:  ',s1 - s2)						##表示法2

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

	s1 ={1,2,3}
	s2 ={2,3,4}
	print('对等差分:  ',s1.symmetric_difference(s2))					##表示法1
	print('对等差分:  ',s1 ^ s2)										##表示法2

在这里插入图片描述

9)子集,超集,相交

	s1 ={1,2,3}
	s2 ={1,2,3,4}
	print(s1.issubset(s2))			##s1是否是s2的子集
	print(s1.issuperset(s2))		##s1是否为s1的超集
	print(s1.isdisjoint(s2))		##s1,s2是否相交

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

	import random
	s = set([])
	for i in range(int(input("请输入N=  "))):
	    s.add(random.randint(1,1001))
	print(sorted(s))

在这里插入图片描述
例题2: 1). 后台管理员只有一个用户: admin, 密码: admin
2). 当管理员登陆成功后, 可以管理前台会员信息.
3.) 会员信息管理包含:
添加会员信息
删除会员信息
查看会员信息
退出

		print('管理员登陆'.center(50,'*'))
		inuser = input('Username:')
		inpasswd = input('Password:')
		users = ['root','westos']       ## 所有会员的用户名
		password = ['123','456']        ## 所有会员的密码
		if inuser == 'admin' and inpasswd == 'admin':
		    print('管理员登陆成功')
		    print('会员管理'.center(50,'*'))
		    while True:
		        print("""
		        *** 操作目录 ***
		        1.  添加会员信息
		        2.  删除会员信息
		        3.  查看会员信息
		        4.  推出
		        """)
		        choice = input('请选择你的操作:')
		        if choice == '1':
		            print('添加会员信息'.center(50,'*'))
		            addUser = input('添加会员名称')
		            if addUser in users:
		                print('用户%s已经存在' %(addUser))
		            else:
		                addPasswd = input('密码:')
		                users.append(addUser)
		                password.append(addPasswd)
		                print('添加用户%s成功' %(addUser))
		
		        elif choice == '2':
		            print('删除会员信息'.center(50,'*'))
		            delUser = input('删除的会员名:')
		            delIndex = users.index(delUser)
		            users.remove(delUser)
		            password.pop(delIndex)
		            print('删除会员%s成功' %(delUser))
		
		        elif choice == '3':
		            print('查看会员信息'.center(50,'*'))
		            print('\t用户名\t密码')
		            userCount = len(users)
		            for i in range(userCount):
		                print('\t%s\t%s' %(users[i],password[i]))
		        elif choice == '4':
		            exit()
		        else:
		            print('请输入正确的选择')
		else:
		    print('管理员登陆失败!')

在这里插入图片描述

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值