比较两个列表以查找相同的值,返回缺失的值

时间:2017-06-02 10:04:25

标签: python loops

我的程序是遍历坐标(列表)并检查3个坐标从ocoords(列表)中是否为真,并返回或可能获得该假值(坐标)

我正在尝试找到一种在两个结构中找到相似值的有效方法,这两个结构的结构不同但坐标相同。

coordinates = [[(2,2),(3,2)],[(2,2),(2,3)],[(4,2),(5,2)],[(5,2),(6,2)]]


#iterating through coordinates...
>>>
[(2, 2), (3, 2)]
[(2, 2), (2 ,3)]
[(4, 2), (5, 2)]
[(5, 2), (6, 2)]

然后我的下一个列表结构如下(指定的坐标应该一起...

ocoords = [[[(2,2),(3,2)],[(2,2),(2,3)],[(4,2),(5,2)],[(3,3),(3,2)]], <-- last value is not identical
 [[(3,2),(4,2)],[(3,2),(3,3)],[(3,3),(4,3)],[(4,3),(4,2)]]] <-- structure of list

那你怎么会这样呢?我是新手,对这个问题很抱歉。我想过使用布尔值,但是我需要得到那个假的值。

我想看看是否有任何坐标都在ocoords [0]中,如果它们是,但是有一个不给我这个值。

1 个答案:

答案 0 :(得分:1)

您可以itertools.dropwhile使用谓词检查router.get('/coin', function(req, res) { User.getUserByUsername(req.user.username, function(err, user){ user.coins = user.coins + 1 User.update(user) // Stores modified data. console.log(user.coins) }); res.redirect('/') }); coordinates中包含的项目

ocoords[0]

如果项目已对齐,您可以使用from itertools import dropwhile val = next(dropwhile(lambda x: x in ocoords[0], coordinates)) print(val) # [(5, 2), (6, 2)] 加快速度,而无需检查每个项目的包含,而是检查是否存在成对不匹配:

zip