获取数组中包含其他元素的元素的索引

2024-04-19 15:23:06 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个数组:

array = [[1,2,3],[4,5,6],[7,8,9]]

例如,我想得到包含5的内部数组的索引。所以在本例中,返回的索引是1。你知道吗

我确实尝试过ind = array.index(5),但我很清楚为什么这样做不起作用,因为括号中的值必须与数组中的元素完全匹配。我做这件事的另一个方法是

counter = 0
for each in array:
  if 5 in each: break
  else: counter = counter + 1

这对我想要的很有效,但我想看看是否有一个更简单更干净的方法来做到这一点。谢谢


Tags: 方法in元素forindexifcounter数组
3条回答

使用next(..)有一种更好的pythonic方法。记住,如果5在任何子数组中都不存在,这将抛出一个StopIteration。你可能想处理一下。你知道吗

>>> your_list = [[1,2,3],[4,5,6],[7,8,9]]
>>> next(i for i, x in enumerate(your_list) if 5 in x)
1

最好避免breaks。这里有一个更好的方法:

for ind, inner_arr in enumerate(array):
    if 5 in inner_arr:
        return ind

一行解决方案

#a = [[1,2,3],[4,5,6],[7,8,9]]
[i for i, j in enumerate(a)  if 5 in j][0]

相关问题 更多 >