首页 > 解决方案 > python:在子列表中定位元素

问题描述

给定这些子列表

lst=[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h']]

我正在尝试查找其元素的位置,例如,字母“a”位于 0,0 但这一行

print(lst.index('a'))

而是产生以下错误: ValueError: 'a' is not in list

标签: pythonnested-listssublist

解决方案


如果你listdepth=2,你可以使用这个:

lst=[['a', 'b', 'c', 'd', 'e'], ['f', 'g', 'h']]
def fnd_idx(char, lst):
    for x in range(len(lst)):
        try:
            idx = lst[x].index(char)
            return [x,idx]
        except ValueError:
            pass
    return None

输出:

>>> print(fnd_idx('a', lst))
[0, 0]

>>> print(fnd_idx('g', lst))
[1, 1]

>>> print(fnd_idx('z', lst))
None

推荐阅读