繁体   English   中英

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

[英]Python 3 How to check if a value is already in a list in a 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

我该怎么做?

使用any()测试子列表:

if any(a in subl for subl in mylist):

这会测试每个subl但如果找到匹配项,则会提前退出生成器表达式循环。

,但是,返回的具体子列表匹配。 您可以使用带有生成器表达式的next()来查找第一个匹配项:

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

您可以将any()与列表推导一起使用(好吧,这里是生成器推导):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM