检查列表中的值是否等于某个数字

use*_*123 2 python

我有一个数据列表:

[[0, 3], [1, 2], [2, 1], [3, 0]]
Run Code Online (Sandbox Code Playgroud)

我正在尝试检查是否有任何单个数字等于3,如果是,则返回哪个元素,因此原始列表中的list [0],list [3]等包含该值3.

我已经达到了:

for i in range(0, len(gcounter_selection)):
  for x in range(0,len(gcounter_selection)):
    if any(x) in gcounter_selection[i][x]==3:
      print(i)
Run Code Online (Sandbox Code Playgroud)

我的列表顺便称为gcounter_selection.

但我得到一个类型错误:

TypeError: argument of type 'int' is not iterable
Run Code Online (Sandbox Code Playgroud)

我尝试过使用生成器表达式,但我也无法使用它.

geo*_*org 8

如果我理解正确,你正在寻找列表理解:

value = 3
lst = [[0, 3], [1, 2], [2, 1], [3, 0]]
items = [x for x in lst if value in x]
print(items)
#[[0, 3], [3, 0]]
Run Code Online (Sandbox Code Playgroud)

要获取元素的位置而不仅仅是元素,请添加enumerate:

indexes = [n for n, x in enumerate(lst) if value in x]
Run Code Online (Sandbox Code Playgroud)