python通过集合元素找出两个班重名人姓名

#使用并集求两个班重名学生的实现
#首先输入学生数量
num1=int(input('输入班级1的学生数量'))
#创建一个空集合
class1=set()
#使用循环循环录入学生名字
for i in range(0,num1):
    name = input('请输入第%d名学生的姓名'%(i+1))
    class1.add(name)#通过.add方法插入

num2=int(input('请输入班级2的学生的数量'))

class2=set()

for i in  range(0,num2):
    name = input('请输入第%d名学生的姓名'%(i+1))
    class2.add(name)

same = class1 & class2
print("重名的学生如下")
for a in same:#循环将same中包含的元素赋给a,由于直接输出将是以集合的方式出现
    print(a)#将集合中选中的元素输出

首先通过input录入班级的数量

然后创建以一个空集合

接着将录入的值录入for循环

循环往空集合中赋值

接着将上面步骤重复

将两个集合中的值付给一个字符串

最后用for循环输出即可

需要注意的是循环不以数字为单位输出时需要将range改成需要循环的元素或内容

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用set()函数将两个数组转换为集合,然后使用差集操作符“-”找出不共有的元素。具体代码如下: ```python a = [1, 2, 3, 4, 5] b = [3, 4, 5, 6, 7] c = set(a) - set(b) | set(b) - set(a) print(c) ``` 输出结果为: ``` {1, 2, 6, 7} ``` 其中,set(a) - set(b)表示在a中但不在b中的元素,set(b) - set(a)表示在b中但不在a中的元素,两者取并集即为不共有的元素。 ### 回答2: Python是一种高级编程语言,非常适合进行数据处理和数组操作。如果需要找出不是两个数组共有的元素,可以使用set(集合)的方法来实现。集合Python中是一个不重复元素的无序集合,可以通过数学运算符来比较和操作。 首先,创建两个数组: ``` a = [1, 2, 3, 4, 5] b = [3, 4, 5, 6, 7] ``` 接下来,将两个数组转换为集合,并使用Python集合运算符进行比较操作: ``` set_a = set(a) set_b = set(b) result = set_a.symmetric_difference(set_b) ``` 这个操作返回的是两个数组中不相同的元素。结果为: ``` {1, 2, 6, 7} ``` 这代表只有1,2,6和7是两个数组中没有共有的元素。 还可以使用列表解析(list comprehension)来实现相同的操作,代码如下: ``` result = [x for x in a + b if x not in set_a.intersection(set_b)] ``` 这个操作将两个数组相加,并从总数中删除相同的元素。最后,使用列表解析计算不是交集的元素。结果是相同的: ``` [1, 2, 6, 7] ``` 总之,Python提供了多种方法来找到两个数组中不相同的元素。使用集合和列表解析等高效的技术可以简化代码,并提高计算效率。 ### 回答3: Python中,找出两个数组共有的元素是非常简单的,只需通过集合(set)的交集运算即可。但是,如果要找出不是两个数组共有的元素,需要更为复杂的方法。以下是一个可能的解决方案: 首先,将两个数组转换成集合,使用set()函数即可。然后,利用集合的差集运算,即set1 - set2(或者set2 - set1,取两个差集的并集)即可得到不是两个数组共有的元素。最终,将差集转换回列表或者数组即可。 具体实现方式如下: ``` list1 = [1, 2, 3, 4, 5] list2 = [4, 5, 6, 7, 8] set1 = set(list1) set2 = set(list2) diff = list(set1 - set2) + list(set2 - set1) print(diff) ``` 以上代码的输出结果将是[1, 2, 3, 6, 7, 8],即为不是两个数组共有的元素。通过简单的集合差集计算,我们成功地找到了不同的元素,即便数组大小不一,元素内容不同,这种方法都可以适用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值