贝尔0703 发表于 2026-10-2 15:17:48

本主题需向作者支付 2 鱼币 才能浏览 购买主题

FishC 发表于 2026-10-2 15:18:06

这题的意思是:写一行代码,把 s1 和 s2 里都有的元素找出来。

常见一行写法是:

w =

也可以更直接:

w = list(set(s1) & set(s2))

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

w = []
for x in set(s1):
    if x in set(s2):
      w.append(x)

逐句解释:

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

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

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

w = list(dict.fromkeys(x for x in s1 if x in s2))

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 请用一行代码找出两个序列中相同的元素