2 回答

TA贡献1862条经验 获得超7个赞
any 将在第一场比赛时停止,并且不会告诉您是哪一场。
最好使用匹配项构建列表理解并在字典键+值上循环以测试值并生成相应的键
search_for = tickets['Subject'][len(TermOk):]
result = [ticket_id for ticket_id,(first, second) in dictProblems.items() if search_for == first]
if result:
# there are matches
# print them or whatever

TA贡献1993条经验 获得超5个赞
您可以使用next()生成器表达式:
next(ticket_id for ticket_id, (subject, _) in dictProblems.items() if tickets['Subject'][len(TermOk):] == subject)
您还可以为next()第二个参数指定一个默认值,这样如果没有找到具有给定主题的票证,它将返回None,以便您也可以将其用作if条件,代替any():
ticket_id = next((ticket_id for ticket_id, (subject, _) in dictProblems.items() if tickets['Subject'][len(TermOk):] == subject), None)
if ticket_id:
do_something(ticket_id)
由于票证 ID 可能是唯一的,next()因此非常适合,因为它将返回它找到的第一个匹配项的值。
添加回答
举报