Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 获取表中唯一字符的索引(列表列表)?_Python_List_Python 3.x - Fatal编程技术网

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

Python 获取表中唯一字符的索引(列表列表)?,python,list,python-3.x,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代表第x个子列表,y代表第x个子列表中的yth元素(在本例中为(1,1)) 如果你以后需要,我可以加入我的程序(游戏)的代码 您可以尝试逐行查找索引: def findI(rows): f

我有一个r的列表,每个r元素的列表。 让我们假设
r=3
那么我有一些东西看起来像这样:

list=[["o","o","o"],["o","i","o"],["o","o","o"]]
我想使用“
list.index(item)
”方法获取此列表中“I”元素的索引。因此,我应该得到我想象中的(x,y),x代表第x个子列表,y代表第x个子列表中的yth元素(在本例中为(1,1))


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

您可以
尝试
逐行查找索引:

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)
或者您可以尝试以下方法:

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]
。希望能有帮助。问题是,当元素不在列表中时,它会失败。

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

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)]

我终于想出了一个办法,也能做到这一点,但它需要比你更多的代码行。你的看起来更干净。谢谢这里是我得到的:def indxi():#receperer coordonnees de“I”dans place_objects()uuuuuuuuuuuuuuuu=place_objects()uuuuuuuu for I in range(len(x)):uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.用反引号括住代码--虽然你真的不能在注释中写多行代码。@brianpck进一步认为这绝对是个好主意。捕获所有错误并可能阻止调用代码中的错误处理程序接收错误总是有点危险。在这种情况下,可能没有什么真正的危险,但仍应尽可能遵循良好的设计。我编辑了它。谢谢你的建议。列表的长度是否总是r?