请求解释Python中形如x for x in list if x in otherList的循环写法
列表推导式
x for x in list if x in otherList 详解 这行代码是Python里的列表推导式,本质就是把带条件判断的for循环压缩成一行的简化写法,和你熟悉的普通循环逻辑完全一致,只是写法更紧凑。
先给你转换成你熟悉的普通for循环写法,对比着看就一目了然:
result = [] for x in list: if x in otherList: result.append(x)
现在对应拆解推导式的每一部分:
x:就是最终要添加到结果列表里的元素,对应普通循环里的result.append(x)for x in list:和普通循环的遍历逻辑完全相同,逐个取出list里的元素赋值给xif x in otherList:这是过滤条件,只有满足该条件的x才会被选入结果列表,对应普通循环里的if判断块
举个实际例子更直观:
假设list = [1,2,3,4,5],otherList = [3,4,5,6,7],用推导式[x for x in list if x in otherList]得到的结果就是[3,4,5],和上面的普通循环运行结果完全一致。
它的运行顺序可以总结为:
- 遍历
list中的每一个元素x - 检查当前
x是否存在于otherList中 - 若满足条件,就把
x加入最终的结果列表
内容的提问来源于stack exchange,提问作者rramirez
相关产品推荐
相关产品推荐

