我对这些程序有一些问题。我在python中编写一个函数,它接受一个列表列表和一个字符串作为输入,如果列表列表中列表的第二个元素等于给定的字符串,则返回“名称在这里”。在这种情况下,我所拥有的列表是
railway = [["Milan","Zurich"],["Zurich","Bern"],["Bern","Berlin"],["Berlin","Copenaghen"]]
我的职责是:
def travel( list , stringdestination):
i = 0
for elemento in range(len(list)):
if list[i][1] == stringdestination:
print "target reached"
我跑的时候:
travel(railway, "Bern")
它应该显示:“目标已到达”但它没有,它没有显示任何内容,为什么?
答案 0 :(得分:3)
你永远不会增加我。你的循环应该是:
for pair in list:
if pair[1] == stringdestination:
print "target reached"
答案 1 :(得分:3)
正如已经回答的那样,你没有增加循环变量。但这是错误的,更重要的是,你就像一个只用锤子在他的工具箱中的男人。这几乎就是数据结构称为字典的确切原因。它是内置的。
阅读本文,它更容易,更好。 http://www.tutorialspoint.com/python/python_dictionary.htm
答案 2 :(得分:2)
几点:
list
用作变量名称。 list
是内置名称for i in mylist
例如:
def travel(places, destination):
for start, dest in places:
if destination == dest:
print "target reached"
break
您可能希望在找到目的地时停止迭代。通过立即从函数返回或者断开而不返回任何内容(如果函数中没有return
它隐式返回None
)来这样做。
答案 3 :(得分:0)
我会把它包裹在function
中,所以当一个创建正确的字符串时我会停止。它阻止循环遍历整个列表:
def arrived(s, raileway):
for r in railway:
if r[1] == s:
return True
return False
if arrived("Bern", railway):
print("target reached")