sopa=(["PATO", "BOI", "GATO", "CAO"], ["XPATOW", "GATOPA", "YWBIVZ","ZWCAOB", "ABBOIL"])
def obtem_palavras(sopa):
return sopa[0]
def obtem_grelha(sopa):
return sopa[1]
def encontra_palavras(sopa):
tuplo_palavra = obtem_palavras(sopa)
tuplo_linha = obtem_grelha(sopa)
for item in tuplo_palavra:
for item1 in tuplo_linha:
if item in item1:
return item, tuplo_linha.index(item1), item1.index(item)
我想要的结果是(("PATO",0,1),("BOI",4,2),("GATO",1,0),("CAO",3,2))
通过使用return,我只得到了正确的第一部分"('PATO', 0, 1)"
通过使用print,我可以在不同的行中获得每个信息
PATO 0 1
BOI 4 2
GATO 1 0
CAO 3 2
encontra_palavras(sopa)
必须给我在tuplo_palavra
和tuplo_linha
中的相同单词,它在tuplo_linha
中的位置,以及在项目中的位置
我是Python新手,不知道有没有人能帮忙。我必须使用退货和不打印:)谢谢
试试这个!创建一个列表,在其中附加所有元组,并在函数完成执行时返回它。你知道吗
您可以使用两种主要方法:在
for
循环中构建一个元组,然后返回它;或者将函数设为生成器,然后使用该生成器构建元组。你知道吗方法1:连接到空元组
这是最简单的方法,但效率不高,因为每个
+=
操作都会创建一个新元组。您还可以构建一个列表,在返回之前将其转换为元组。你知道吗方法2:元组理解(技术上是传递给
tuple
的生成器表达式)进近#3发电机
如果您通常只是迭代
encontra_palavras
的结果,这种方法会更好,因为您可以直接使用生成器,而无需将其转换为元组。这意味着您可以遍历encontra_palavras
的项,而不将它们存储在内存中(这称为延迟求值)。你知道吗问题是:
您希望函数
encontra_palavras
为tuplo_palavra
中的每个项做一些工作,将工作的结果累积到一个集合中,然后将该集合作为其返回值返回。你知道吗实际上,您要做的是要求
encontra_palavras
为tuplo_palavra
中的每个项目执行一些工作,为第一个项目执行工作,然后返回单个结果,而从不访问tuplo_palavra
中的其他项目。你知道吗要获得所需的结果,必须更改代码,以便将结果添加到集合中,而不是从最内部的循环返回,然后只有在所有循环完成后,才能返回整个集合。你知道吗
它看起来是这样的:
相关问题 更多 >
编程相关推荐