鱼C论坛

 找回密码
 立即注册
查看: 18|回复: 1

[已解决]请用一行代码找出两个序列中相同的元素

[复制链接]
发表于 2026-10-2 15:17:48 | 显示全部楼层 |阅读模式
购买主题 本主题需向作者支付 2 鱼币 才能浏览
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2026-10-2 15:18:06 | 显示全部楼层    本楼为最佳答案   
这题的意思是:写一行代码,把 s1 和 s2 里都有的元素找出来。

常见一行写法是:

  1. w = [x for x in set(s1) if x in set(s2)]
复制代码


也可以更直接:

  1. w = list(set(s1) & set(s2))
复制代码


解析里说的“还原成循环”就是:

  1. w = []
  2. for x in set(s1):
  3.     if x in set(s2):
  4.         w.append(x)
复制代码


逐句解释:

- w = []:先准备一个空列表,用来装结果。
- for x in set(s1):把 s1 转成集合,自动去掉重复元素,然后一个一个取出来。
- if x in set(s2):判断这个元素是否也在 s2 里。
- w.append(x):如果也在,就把它放进结果列表 w。

为什么要先转 set?因为原序列可能有重复元素,比如 [1, 1, 2] 和 [1, 2, 2],不去重的话结果可能重复。集合会自动去重。

注意:集合是无序的,所以结果顺序可能和原序列不一样。如果要求保持顺序,可以用:

  1. w = list(dict.fromkeys(x for x in s1 if x in s2))
复制代码


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-10-10 23:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表