List

pydoc

Mutable

  • len()
  • pop()
  • pop(i)
  • insert(i, x)
  • remove(x)
  • append(x) extend(L)
  • sort() inplace
  • reverse() inplace

Tuple

Immutable tuple一旦初始化就不能修改

如果要定义一个空的tuple,可以写成():

>>> t = ()
>>> t
()

但是,要定义一个只有1个元素的tuple,如果你这么定义:

>>> t = (1)
>>> t
1

定义的不是tuple,是1这个数!这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此,Python规定,这种情况下,按小括号进行计算,计算结果自然是1。 所以,只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

>>> t = (1,)
>>> t
(1,)

最后来看一个“可变的”tuple:

>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。