我已经多次看到以下代码,我知道它是解决我的问题的方法,但我真的很难理解它是如何工作的。具体代码是:
item for item in list_a if item not in list_b.
例如,使用 for each in list
,我可以理解它正在遍历列表,并对该列表中的每个项目进行循环。与 while x < 10
很容易理解,大多数其他循环和类似命令都非常简单。即使是 for item in list_a if item not in list_b
对我来说很有意义,尽管如果没有第一个 item
,仅此一项似乎行不通...但出于某种原因,我只是不明白第一个 item
是怎么回事除了“因为”(这不是一个有帮助的答案)之外,它代表什么符合等式。
有人能帮我解决这个问题,或者能把这个方程式扩展成几个方程式,从而帮助我弄清楚它是如何工作的。当我了解这些工具的工作原理后,使用这些工具就容易多了,而这些工具让我困惑了一段时间。
提前致谢。
最佳答案
如果把它分成三部分可能会更清楚:
- 拿
元素
; - 来自
列表中的项目
; item 不在 list_b 中
。
列表理解语法之所以是这样,首先是因为它反射(reflect)了扩展版本:
for item in list: # 2.
if item not in list_b: # 3.
new_list.append(item) # 1.
还因为您不一定只想要 item
,例如:
new = [x ** 2 for x in old if not x % 2]
将创建一个new
列表,其中包含old
中所有偶数的平方。
关于python - 理解 "item for item in list_a if ..."Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22620091/