我很困惑Python会对下面的例子进行处理。
示例1
>>> a = '{}'
>>> a.format('1')
'1'
>>> a
'{}'
>>>
示例2
>>> a = []
>>> a.append(1)
>>> a
[1]
在示例1中,' a'是' {}' 在示例2中,' a'是[1]
在这两个示例中,我都没有将结果分配给' a',那么差异是什么?
答案 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]