对于这个函数,我写的是想要返回最接近列表列表左上角的特定字符的位置。在没有导入模块的情况下以最基本的方式完成此任务会很棒。这是我到目前为止的代码,然后我将更多地解释我正在尝试做什么
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),因为它在第二个列表的第4个位置(python从0开始)。我当前的代码不会查找最接近左上角的字符,因为我不确定如何编程。提前感谢我收到的任何帮助。
答案 0 :(得分:1)
迭代所有元素直到找到字符的函数。一旦找到它,它就会返回位置。要找到psotion,你可以使用enumerate函数返回一个包含计数的元组(从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)
答案 1 :(得分:0)
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)