python 集合 查询不同班级的同名情况

问题:
有两个班级,查询两个班级名字一样的同学
在这里插入图片描述
解题:
创建两个数组,将两个班级的同学名称放进去
接着将两个数组进行比较
在这里插入图片描述


python 集合

一个无序的集,用来保存不重复的数据;用 ”,“ 隔开,整体用 ”{}“ 括起来。
集合只能储存基础数据类型,包括 整型、浮点型、字符串、元组
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建集合可以用 “{}” 或者set()
但如果想要创建一个空集合,要用set();否者,空 {} 会默认创建为字典
在这里插入图片描述
注意:
集合输入可以有重复值,但是输出一定没有
集合内如果想要输出 除数字外的元素,一定要用 “” 圈起来
否则python不知道他是单纯的元素,还是一个赋值的字符
在这里插入图片描述

a='abcde'      #a是一个字符串
print(a)
test=set(a)    #set(a) 将字符串转化为集合
print(test)
print( )
b=[1,2,3]      #b是一个列表
print(b)
test=set(b)    #将列表转化为集合
print(test)
print( )
c=(1,2,'abc')  #c是一个元组
print(c)    
test=set(c)
print(test)
print( )
d={'a':1,'b':2,'c':3}  #d是一个字典
print(d)
test=set(d)
print(test)

在这里插入图片描述
注意:
python的元组,类似于c的数组
python的字典,类似于带节点的数据结构 数组
set(字典) 输出的只有字符串,没有节点

集合是无序的,可以通过 for 语句遍历的方式进行查询

test={1,2,'abc',567}
print(test)
for item in test:    #使用 变量 item 遍历 集合 test
    print(item)

在这里插入图片描述
集合可以通过 .add和 .remove来添加和去除数据

test={1,2,'abc',567}
print(test)
test.add(6)
print(test)
test.remove(1)
print(test)

在这里插入图片描述

集合的交集&、并集|、差集-
在这里插入图片描述

交集和并集不分先后,但差集区分

a={1,2,3,4}
b={3,4,5,6,7}
print(a&b)   #a交b
print(b&a)   #b交a
print()
print(a|b)  #a并b
print(b|a)
print()
print(a-b)  #a差b
print(b-a)
#交集和并集不分先后,但差集区分先后
print()
print(a.intersection(b))
print(a.union(b))
print(a.difference(b))
print(b.difference(a))

在这里插入图片描述


解题: 使用 num1和num2来记录班级人数 使用集合class1和class2来记录学生名称
num1=int(input("请输入班级1的学生数量:") )  #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1))   #输出验证

class1=set()   #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
    name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
    class1.add(name)

如果只是一句,a=input() 是没有问题的;
但是,for循环中,for i range(0,num1) ’num1’ 需要明确界定数据类型,否则报错
在这里插入图片描述
在这里插入图片描述

这句话的报错是: ‘class2’ 不存在,‘name’ 字段只能填写到 ‘class1’ 中
在这里插入图片描述

如果不想写中文提示,可以直接用 input() ,但是很容易搞混淆,最好添上
如果input()中使用中文提示,不仅中文要用引号括起来,还要用 “%d” %() 格式

num1=int( input("请输入班级1的学生数量:") )  #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1))   #输出验证

class1=set()   #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
    name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
    class1.add(name)    #使用.add 将学生姓名添加到class1集合中
print(class1)   #输出验证

num2=int( input("请输入班级2的学生数量:") )
print(num2)     #输出验证
class2=set()
for i in range(0,num2):
    name = input()
    class2.add(name)
print(class2)   #输出验证

在这里插入图片描述
简单输出

num1=int( input("请输入班级1的学生数量:") )  #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1))   #输出验证

class1=set()   #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
    name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
#正常是从0开始计数,i+1 从第一位开始显示
    class1.add(name)    #使用.add 将学生姓名添加到class1集合中
print(class1)   #输出验证

num2=int( input("请输入班级2的学生数量:") )
print(num2)     #输出验证
class2=set()
for i in range(0,num2):
    name = input( "请输入班级2的学生姓名,第%d位:" %(i+1) )
    class2.add(name)   
print(class2)   #输出验证

same= class1&class2  #求两者的交集,并赋值给 same
print("重名的同学为:")
print(same)

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

num1=int( input("请输入班级1的学生数量:") )  #打印提示,并将数据储存到num1
print("班级1的学生数量为:{}".format(num1))   #输出验证

class1=set()   #创建一个空集,命名为class1
#通过循环,控制输入次数
for i in range(0,num1):
    name = input( "请输入班级1的学生姓名,第%d位:" %(i+1) )
#正常是从0开始计数,i+1 从第一位开始显示
    class1.add(name)    #使用.add 将学生姓名添加到class1集合中
print(class1)   #输出验证

num2=int( input("请输入班级2的学生数量:") )
print(num2)     #输出验证
class2=set()
for i in range(0,num2):
    name = input( "请输入班级2的学生姓名,第%d位:" %(i+1) )
    class2.add(name)   
print(class2)   #输出验证

same= class1&class2  #求两者的交集,并赋值给 same
print("重名的同学为:")
print(same)

for name in same:  #使用for循环将名字逐个打印出来
    print(name)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值