|
|
发表于 2026-10-2 15:18:06
|
显示全部楼层
这题的意思是:写一行代码,把 s1 和 s2 里都有的元素找出来。
常见一行写法是:
- w = [x for x in set(s1) if x in set(s2)]
复制代码
也可以更直接:
- 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?因为原序列可能有重复元素,比如 [1, 1, 2] 和 [1, 2, 2],不去重的话结果可能重复。集合会自动去重。
注意:集合是无序的,所以结果顺序可能和原序列不一样。如果要求保持顺序,可以用:
- w = list(dict.fromkeys(x for x in s1 if x in s2))
复制代码
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|