简单的python函数不能正常工作

2024-05-11 12:26:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我对这些程序有一些问题。我用python编写了一个函数,它以列表列表和字符串为输入,如果列表列表中列表的第二个元素等于给定的字符串,则返回“名称在这里”。在这种情况下,我得到的列表是

railway = [["Milan","Zurich"],["Zurich","Bern"],["Bern","Berlin"],["Berlin","Copenaghen"]] 

我的职能是:

^{pr2}$

当我跑步时:

travel(railway, "Bern") 

它应该显示:“目标已达到”,但它没有,它没有显示任何东西,为什么?在


Tags: 函数字符串程序名称元素列表情况职能
3条回答

有几点:

  1. 不要使用list作为变量名。list是一个内置名称
  2. 直接迭代列表for i in mylist
  3. 通过在迭代中分配2个变量,可以“解包”列表中的对

例如:

def travel(places, destination):
    for start, dest in places:
        if destination == dest:
            print "target reached"
            break

当您找到目的地时,您可能希望停止迭代。通过立即从函数返回或中断而不返回任何内容(如果函数中没有return,则它隐式返回None)。在

正如回答的那样,您不会递增循环变量。但这就是问题所在,更重要的是,你就像一个工具箱里只有一把锤子的人一样,在这个螺丝钉上。这几乎就是数据结构dictionary产生的确切原因。它是一个内置的。在

仔细读一下这个,它会更容易和更好。 http://www.tutorialspoint.com/python/python_dictionary.htm

你永远不会递增i。你的循环应该是:

for pair in list:
    if pair[1] == stringdestination:
        print "target reached"

相关问题 更多 >