返回列表列表中特定交易品种的位置

Returning position of specific symbol in list of lists

对于我正在编写的这个函数,我想 return 最接近列表列表左上角的特定字符的位置。在不导入模块的情况下以最基本的方式完成此操作会很棒。这是我到目前为止的代码,然后我将详细解释我正在尝试做的事情

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

因此,如果指示函数查找“.”那么它应该 return (0,0) 因为它在第一个列表的第一个位置。如果函数被告知要查找 'h' 那么它应该 return (1,4) 因为它在第二个列表的第 4 个位置(python 从 0 开始)。我当前的代码不会查找最靠近左上角的字符,因为我不确定如何对其进行编程。提前感谢我收到的任何帮助。

一个遍历所有元素直到找到字符的函数。一旦找到它,它就会 returns 位置。要查找 psotion,您可以使用 enumerate 函数,其中 returns 一个元组包含一个计数(从 start 开始,默认为 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)