【发布时间】:2022-01-07 16:54:47
【问题描述】:
给定一个对象列表,看起来有点像下面的伪代码:
class myObj:
self.init(i, s):
myInt = i
myString = j
我们对列表进行伪编码,其中一个具有如下重要属性:
Mario = [MyObj(0, 'foo1'), MyObj(0, 'foo2'), MyObj(0, 'foo3')]
Luigi = ['bar1', bar2']
然后我们尝试从Mario 中删除与Luigi 中的字符串不匹配的任何MyObj:
for coin in Mario:
if coin.myString not in Luigi:
Mario.remove(coin)
问题是,这只循环两次,然后退出,len(Mario) == 1,而不是零。
使用
Peach = [(myObj)x for x.myString in Mario if x not in Luigi]
错误:"[" was not closed
如何将 Luigi 中的字符串与 Mario 的所有 myStrings 进行比较,并丢弃不适合的对象?
我检查了以下 SO 问题,但没有任何帮助: Remove all values within one list from another list?
【问题讨论】:
-
您希望
(myObj)x和for x.myString in ...做什么?这不是有效的语法。
标签: python python-3.x