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

I have an input that appends to a list, how do I print out the last list-item(the last input)?

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

相关代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
countryList = []

cityList = []

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

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

选择国家的功能如下:

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

然后打印功能如下:

1
2
3
4
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"


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

尽管本教程将一个示例显示为字符串索引,但它在列表中的作用相同:http://docs.python.org/2/tutorial/introduction.html strings


评论太长:

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

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

或者看看定购的菜谱。