python - 如果 python 中满足两个条件,则返回列表索引

标签 python

如果满足两个条件,我试图在列表中查找索引,并将这些索引存储在新列表中。目前我可以在列表中找到满足条件的条目,但不知道如何获取列表索引。

列表是:

[[0, 1], [1, 0], [0, 2], [1, 1], [2, 0], [0, 3], [1, 2], [2, 1], [3, 0]]

到目前为止我的代码:

m2=[]
for i in range(0,len(gmcounter)):
  if countersum[i]==2 and 2 in gmcounter[i]:
    m2.append(gmcounter[i])
print m2

Countersum 是一个包含列表元素总和的列表,因此返回 [[0, 2], [2, 0]] 我希望 m2 获取满足两个条件的索引值,所以我希望 m1 获取 [4,5]

我有一个想法,这将与枚举函数有关,但到目前为止我尝试将其包含在内还没有奏效

非常感谢任何帮助!!

最佳答案

您的 i 已经是满足两个条件的索引。

使用enumerate(),可能与zip()结合使用将是更Pythonic的方法:

m2=[]
for i, (csum, counter) in enumerate(zip(countersum, gmcounter)):
    if csum == 2 and 2 in counter:
        m2.append(i)

或者,使用列表理解:

m2 = [i for i, (csum, counter) in enumerate(zip(countersum, gmcounter)) if csum == 2 and 2 in counter]

关于python - 如果 python 中满足两个条件,则返回列表索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586719/

相关文章:

python - Google 函数超出内存

python - 是否可以使用pyunit动态加载测试用例

python - 套接字失去连接

python - 在 VM 中通过 Python3 运行 IPython Notebook

python - 第一次迁移KeyError : u'editable' when performing ./manage.py

python - selenium 通过 python 中的可见文本进行选择

python - 如何获取单个行的值?

python - 在散点图上绘制 matplotlib.animation 中的垂直线

python - 从数组及其转置创建邻接矩阵

python - 按另一个列表过滤 Python 列表列表