【发布时间】:2014-12-08 01:54:53
【问题描述】:
我需要它来反转列表中的内容,无论我现在运行它时它的数字或单词,它都会打印None。我需要它来打印反向列表。有人可以帮忙吗?
def func4(x):
print(x.reverse())
return;
e = ['baby','egg','chicken']
func4(e)
【问题讨论】:
我需要它来反转列表中的内容,无论我现在运行它时它的数字或单词,它都会打印None。我需要它来打印反向列表。有人可以帮忙吗?
def func4(x):
print(x.reverse())
return;
e = ['baby','egg','chicken']
func4(e)
【问题讨论】:
您的代码实际上按预期工作;它可以很好地反转列表。它打印None 的原因是因为list.reverse 是一个始终返回None 的就地方法。
因此,您应该在自己的线路上调用reverse:
def func4(x):
x.reverse()
print(x)
e = ['baby','egg','chicken']
func4(e)
现在,print 将打印反向列表,而不是 reverse 返回的 None。
请注意,相同的原则适用于list.append、list.extend,以及几乎所有其他在 Python 中改变对象的方法。
另外,我从函数末尾删除了 return 语句,因为它没有做任何有用的事情。默认情况下,Python 函数已经返回 None,因此没有理由显式这样做。
【讨论】:
你可以切片:
e = ['baby','egg','chicken']
f = e[::-1]
print(f)
【讨论】:
reversed 方法更强大...
x.reverse() 不返回反转列表,它只是反转它。撤消后需要单独拨打print(x)。
【讨论】:
使用“反转”功能的简单方法:
for str in reversed(e):
print(str)
【讨论】: