我有一个附加到列表的输入,如何打印出最后一个列表项(最后一个输入)?

时间:2013-11-14 14:51:41

标签: python list python-3.x append listitem

我在打印列表中的项目时遇到问题。

以下是相关代码:

countryList = []

cityList = []

def startFunction():
     while True:
        print("\nWhen you have typed in country and city, press 3 in the menu to see the weather forecast for your choice.\n")
        menu = input("\nPress 1 for country\nPress 2 for city\nPress 3 to see forecast\nPress 4 to exit\n")
        if menu == "1":
            countryFunction()
        elif menu == "2":
            cityFunction()
        elif menu == "3":
            forecastFunction()
        else: 
            print ("\nGoodbye")
            break

我首先有一个国家和城市的空列表,然后是一个带有循环的start函数,它将调用不同的函数。

以下是选择国家/地区的功能:

def countryFunction():
    countryc = input("Enter which country your city is in(in english): ")
    countryList.append(countryc)

然后打印功能如下所示:

def forecastFunction():
    r = requests.get("http://api.wunderground.com/api/0def10027afaebb7/forecast/q/" + countryList[0] + "/" + cityList[0] + ".json")
    data = r.json()
    #Above is the problem, countryList[0] and cityList[0]  

正如您所看到的那样,我刚刚放置countryList[0],但这只会打印出列表的第一项。由于我正在使用的循环,用户可以反复选择国家和城市,每次都会附加到列表中。 我的问题是:如何在代码中打印出最后一个列表项(列表中的最后一项) r = requests.get("http://api.wunderground.com/api/0def10027afaebb7/forecast/q/" + countryList[0] + "/" + cityList[0] + ".json"

2 个答案:

答案 0 :(得分:3)

使用-1作为列表的索引,即countryList[-1]将为您提供列表中的最后一项。

虽然本教程将示例显示为字符串的索引,但它对列表的作用相同:http://docs.python.org/2/tutorial/introduction.html#strings

答案 1 :(得分:2)

评论太长了:

正如其他答案所指出的,您只需使用-1索引功能,就像在countryList[-1]中一样。

但是,您似乎还希望使用有序的类似集合的数据结构,以避免存储来自用户的重复条目。在这种情况下,使用OrderedDict可能对您更好。

或许可以查看OrderedSet食谱。