Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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

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_Position_Symbols - Fatal编程技术网

Python 返回列表列表中特定符号的位置

Python 返回列表列表中特定符号的位置,python,list,python-3.x,position,symbols,Python,List,Python 3.x,Position,Symbols,对于我正在编写的这个函数,我想返回最靠近列表左上角的特定字符的位置。在不导入模块的情况下,以最基本的方式完成这项工作将是非常棒的。这是我到目前为止的代码,然后我将进一步解释我正在尝试做的事情 def find_position(symbol,lst): # Sample List: [['.','M','M','G','G'], # ['.','.','.','.','h'], # ['B','B','B','.','h']] #

对于我正在编写的这个函数,我想返回最靠近列表左上角的特定字符的位置。在不导入模块的情况下,以最基本的方式完成这项工作将是非常棒的。这是我到目前为止的代码,然后我将进一步解释我正在尝试做的事情

def find_position(symbol,lst): 

# Sample List: [['.','M','M','G','G'],
#               ['.','.','.','.','h'],  
#               ['B','B','B','.','h']]
#
    for sublist in lst:
        for symbol in sublist:
            if symbol == True:
            lst.find(symbol)
        return symbol
            else: 
            return None

因此,如果函数被指示查找“”,那么它应该返回(0,0),因为它位于第一个列表的第一个位置。如果函数被告知要查找“h”,那么它应该返回(1,4),因为它位于第二个列表的第四个位置(python从0开始)。我当前的代码没有查找最靠近左上角的字符,因为我不知道如何编程。提前感谢您对我的帮助

迭代所有元素直到找到字符的函数。一旦找到它,它就会返回该位置。要查找psion,您可以使用function,它返回一个元组,其中包含一个计数(从开始默认为0)和通过在序列上迭代获得的值

def find_position(symbol,lst):
    for index, my_list in enumerate(s):
        for i,item in enumerate(my_list):
            if symbol == item:
                return "{},{}".format(index,i)
    return "Not found"    

s = [['.','M','M','G','G'],
              ['.','.','.','.','h'],  
              ['B','B','B','.','h']]
a =  find_position("h",s)  

Daniel的方法在时间执行上稍微快一点,但这也适用于比较:

def find_pos(listname, symbol):
    for i in range(len(listname)):
        for j in listname[i]:
            if j == symbol:
                return i ,listname[i].index(j)

谢谢,枚举时s和my_列表的值是多少?我不确定列举的是什么。你的代码运行得很好,我想知道它是如何工作的。谢谢,你的代码是否返回括号中的位置?出于某种原因,当我运行代码时,它会为位置返回None,而不是它所返回的位置。您是否正确输入了函数执行?例如,如果您的列表名称是“mylist”,那么它将是find_pos(mylist,“.”)。您是对的,我这边有一个问题,现在它工作正常。我决定给你最好的答案,因为这更接近我的原始代码如果你只需要括号,在return语句中编辑Daniels代码到:return(({},{})”。format(index,I))基本上在格式代码周围添加它们,对于更大的需求,执行时间最终会显示出真正的差异