gpt4 book ai didi

Python 元组列表 - 交集和并集的问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:57 26 4
gpt4 key购买 nike

问题:

我想通过 URL 构造一个查询生成器。返回的是元组列表,其中包含参与者和参与者数据。数据库中存在数百个具有唯一 ID 的参与者。每个参与者可以有不同的参与者数据。每个事件注册都会在数据库中创建一个新的参与者数据,通过电子邮件与参与者相关。

e.g.: include|eventid|is|17||include|eventid|is|13__include|unsubscribed|is|True

我将其分为 AND 和 OR 查询。
与的

1. include|eventid|is|17||include|eventid|is|132. include|unsubscribed|is|True

OR

From first AND Condition: 1. include|eventid|is|172. include|eventid|is|13

结果语法:

[(participant_id, partidipantdata_id), (participant_id, partidipantdata_id), ...], 
e.g: [(123,1240), (123,959), (123,1124), (123,1450), (134, 1670), (156,1950), (123,1450), (156,2000), (220,2100), (234, 1754), (156,1121), (278,1556), (281,1671), (278,1771), (156,2111), (312,2254), (289,967), (278, 2178)]

问题:
· 如何正确组合(联合)OR 查询(participant_id、participantdata_id)?--> 查询各种事件需要participant_id,查询未订阅的各种事件(参与者数据中存储了谁的信息)需要participantdata_id
两者都需要:participant_id和participantdata_id才能得到最终结果查询。



问题:
例如。查询:事件#17 AND 事件#13 AND 已取消订阅此事件的所有ParticipantData。 (结果:3 个查询:#13 和 #17 的参与者以及在系统中取消订阅某些事件的所有参与者)。
所以我可以将17和13的participant_id进行交集。但是,为了获得该事件的所有取消订阅,我必须将事件#13和事件#17的参与者数据_id进行交集并取消订阅。但这是行不通的,因为每次注册事件都会创建一个参与者的新参与者数据。访问#13 和#17 的参与者将不匹配。那就是问题所在!

· 问题来自 AND 查询(OR 查询的结果相交)。

非常感谢!克里斯

最佳答案

返回set每个匹配记录的 UID。然后您可以使用并集和交集函数中内置的set-对象。

对于每个可能的结果,UID 都必须是唯一的。在这种情况下,一个可能的结果是特定的参与者数据,并且它将由(参与者 id,参与者数据 id)唯一标识,因此您可以使用它,这意味着您可以只返回一个 set 而不是一个列表

元组在这里不是最有效的数据类型,但我认为这对您的情况并不重要。

关于Python 元组列表 - 交集和并集的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17486493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com