获取表中唯一字符的索引(列表列表)?

时间:2016-09-30 16:11:12

标签: python list python-3.x

我列出了每个r元素的r列表。 让我们说r=3然后我有一些看起来像这样的东西:

list=[["o","o","o"],["o","i","o"],["o","o","o"]]

我想使用""" list.index(item)"""来获取"的索引。 I"此列表中的元素。因此,我应该得到一些我想象的东西,如(x,y),其中x代表xth子列表,y代表xth子列表中的yth元素(在这种情况下为(1,1))。

如果您以后需要,我可以加入我的程序代码(游戏)。

3 个答案:

答案 0 :(得分:2)

如果您正在寻找一个找到嵌套列表中所有值的索引的解决方案,这里有一个函数:

def find_indexes(needle, lst):
    return [(lst_idx, sub_idx) for lst_idx, sublst in enumerate(lst) 
                               for sub_idx, i in enumerate(sublst) 
                                   if i == needle]

您可以按如下方式使用:

>>> lst = [["o","a","o"],["a","i","o"],["o","o","a"]]
>>> find_indexes('a', lst)
[(0, 1), (1, 0), (2, 2)]

答案 1 :(得分:1)

您可以try逐行查找索引:

def findI(rows):
    for i,row in enumerate(rows):
        try:
            return (i,row.index("i"))
        except ValueError:
            pass

例如:

>>> x =[["o","o","o"],["o","i","o"],["o","o","o"]]
>>> findI(x)
(1, 1)

答案 2 :(得分:0)

或者你可以试试这个:

list=[["o","o","o"],["o","i","o"],["o","o","o"]]
f = [sublist for sublist in list if element in sublist][0]
print(list.index(f), f.index(element))

[0]是因为它会返回[[a,b]]之类的东西,因为它就像一个过滤器。但我需要[a, b]。希望能帮助到你。这个问题是当元素不在列表中时它会失败。