在Python 3中分配变量混淆

时间:2015-05-31 16:33:06

标签: python variable-assignment

我以为我理解了作业是如何工作的,但在运行这两段代码后,我意识到我现在很困惑。

这是在Python 3.3中:

numbers=[1,4,3]
hello=numbers.reverse()
print(hello)
None

当我print(numbers)时,我得到[3,4,1]这是我在打印hello时所期望的。

另一个例子:

numbers='yeah'
hello=numbers.capitalize()
print(hello)
Yeah

为什么在将列表分配给第二个变量时,如第一个示例所示,在打印第二个变量时我得到None,但是在分配字符串时这不会发生?我在Python可视化工具中运行它,但是这仍然没有回答我关于如何/为什么这样做的问题。

2 个答案:

答案 0 :(得分:3)

那是因为mem.dll反转列表到位

你的代码应该是:

numbers.reverse()

或者如果您不想修改原始列表numbers=[1,4,3] numbers.reverse() print(numbers) ,请将号码复制到hello:

numbers

方法的文档将始终告诉您方法是否到位(即它将您调用方法的对象更改为),或者返回结果

答案 1 :(得分:1)

与指定的文档一样,list.reverse()“反转列表中的元素”,而str.capitalize()“返回单词的副本,只有第一个字符大写。”

一个就地工作而另一个返回结果。