常见一行写法是:
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]