You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中print(*sorted(map(int,a^b)))语句含义咨询

集合对称差计算代码解析

问题背景

输入格式:

  • 第一行输入整数m;
  • 第二行输入m个空格分隔的整数;
  • 第三行输入整数n;
  • 第四行输入n个空格分隔的整数。

输出格式:

  • 按升序输出两组整数的对称差,每行一个整数。

给出的完整实现代码:

_, a, _, b = input(), set(input().split()), input(), set(input().split())
print(*sorted(map(int, a ^ b)), sep='\n')

核心语句print(*sorted(map(int, a ^ b)), sep='\n')详解

我们把这句话拆成几个关键步骤逐一解释:

1. a ^ b:计算集合的对称差

  • 集合的^运算符是symmetric_difference()方法的简写,作用是找出只在集合a中,或者只在集合b中的元素(排除同时出现在两个集合里的元素)。
  • 举个例子:如果a = {"1", "2", "3"},b = {"2", "3", "4"},那么a ^ b的结果是{"1", "4"}。
  • 注意:这里的a和b是通过input().split()生成的集合,所以集合里的元素都是字符串类型。

2. map(int, a ^ b):将字符串元素转为整数

  • map(int, 可迭代对象)会遍历对称差集合中的每个元素,把每个字符串形式的数字转换成整数类型。
  • 接上面的例子,这一步会把{"1", "4"}转换成包含整数1和4的可迭代对象,确保后续排序是按数值大小而不是字符串字典序进行。

3. sorted(...):对整数进行升序排序

  • sorted()会把map返回的可迭代对象转换成一个升序排列的列表。
  • 上面的例子经过这一步后,会得到列表[1, 4]。

4. print(*..., sep='\n'):展开列表并逐行输出

  • *是Python的解包运算符,它会把排序后的列表中的每个元素单独作为print函数的参数。比如print(*[1,4])等价于print(1, 4)。
  • sep='\n'指定了参数之间的分隔符是换行符,这样每个元素会单独占一行输出,完美符合题目要求的输出格式。

内容的提问来源于stack exchange,提问作者preeeti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 07:54:55