Python 3如何检查值是否已经在列表中的列表中

Python 3如何检查值是否已经在列表中的列表中,python,list,Python,List,我的Python 3中有一个列表: mylist = [[a,x,x][b,x,x][c,x,x]] (x只是一些数据) 我有我的代码,它可以: for sublist in mylist: if sublist[0] == a: sublist[1] = sublist[1]+1 break 现在我想添加一个条目,如果有任何sublistentry==a 如何才能做到这一点?用于测试子列表: if any(a in subl for subl in

我的Python 3中有一个列表:

mylist = [[a,x,x][b,x,x][c,x,x]]
(x只是一些数据)

我有我的代码,它可以:

for sublist in mylist:
    if sublist[0] == a:
        sublist[1] = sublist[1]+1
        break
现在我想添加一个条目,如果有任何sublistentry==a

如何才能做到这一点?

用于测试子列表:

if any(a in subl for subl in mylist):
这将测试每个
subl
,但如果找到匹配项,则会提前退出生成器表达式循环

但是,这不会返回匹配的特定子列表。可以与生成器表达式一起使用以查找第一个匹配项:

matched = next((subl for subl in mylist if a in subl), None)
if matched is not None:
    matched[1] += 1
其中,如果生成器表达式引发
StopIteration
异常,则返回默认值
None
,或者您可以忽略默认值,改用异常处理:

try:
    matched = next(subl for subl in mylist if a in subl)
    matched[1] += 1
except StopIteration:
    pass # no match found
您可以使用列表理解(这里是生成器理解):

inList = any(a in sublist for sublist in mylist)