[英]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.