所以我刚刚开始编码,我选择了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))
有人可以通过告诉前一行代码有什么问题来帮助我吗?
答案 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
功能会自动将新行打印到控制台窗口