试图找出有关列表的代码有什么问题?

时间:2018-04-23 18:40:12

标签: python list ide geany

所以我刚刚开始编码,我选择了python。我正在使用列表,我注意到有点奇怪。

wishPlaces = ["Tokyo","Hong Kong","New York","Paris","London"]

print("\n"+str(wishPlaces.reverse())) 

如果我这样写,那么一旦执行它就会显示“None”(我使用geany IDE)

但是我写的时候没关系:

wishPlaces = ["Tokyo","Hong Kong","New York","Paris","London"]


wishPlaces.reverse()
print("\n"+str(wishPlaces))

有人可以通过告诉前一行代码有什么问题来帮助我吗?

2 个答案:

答案 0 :(得分:0)

reverse()方法是一种就地方法。这意味着它不返回任何内容,它只是修改了列表。这就是您使用wishPlaces.reverse()修改wishPlaces wishPlaces=wishPlaces.reverse()的原因。

当你有print("\n"+str(wishPlaces.reverse()))时,你告诉python打印wishPlaces.reverse() 返回的内容,该方法返回的是None(Nonetype对象) 。当您使用wishPlaces方法修改.reverse()然后打印wishPlaces时,事情会按预期工作,因为您实际上已经修改了wishPlaces

答案 1 :(得分:0)

改为使用列表迭代:

wishPlaces = ["Tokyo","Hong Kong","New York","Paris","London"]
wishPlaces = wishPlaces[-1:0:-1]
print(wishPlaces)

[-1:0:-1]是一种迭代语法。第一个值是起始指数; -1代表您列表的最后一项。第二个定义了整理指数。第三个值定义步骤; -1被颠倒了。

最终代码:

wishPlaces = ["Tokyo","Hong Kong","New York","Paris","London"]

print("\n"+wishPlaces[-1:0:-1])

请注意,您不需要将列表项转换为字符串

此外,print功能会自动将新行打印到控制台窗口