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))基本上在格式代码周围添加它们,对于更大的需求,执行时间最终会显示出真正的差异