为什么python中的一些内置方法需要赋值给变量?

时间:2015-04-29 15:57:53

标签: python python-2.7

我很困惑Python会对下面的例子进行处理。

示例1

   >>> a = '{}'
   >>> a.format('1')
   '1'
   >>> a
   '{}'
   >>>

示例2

>>> a = []
>>> a.append(1)
>>> a
[1]

在示例1中,' a'是' {}' 在示例2中,' a'是[1]

在这两个示例中,我都没有将结果分配给' a',那么差异是什么?

1 个答案:

答案 0 :(得分:0)

在你的第一个例子中,你分配了一个是一个不可变的字符串,值是'{}',你调用format()来格式化你的字符串a,一个本身没有改变,str.format( )返回原始字符串的副本,其中每个替换字段/部分替换为相应参数的字符串值,在您的示例中,参数为'1'

它与python输出有关,下面引自python官方网站。

>>> print 'We are the {} who say "{}!"'.format('knights', 'Ni')
We are the knights who say "Ni!"
The brackets and characters within them (called format fields) are replaced with the objects passed into the str.format() method.
 A number in the brackets refers to the position of the object passed into the str.format() method.

您的第二个示例,您将a初始化为空列表并将一个元素(称为x)附加到列表的末尾,它与a[len(a):] = [x]

相同