无法附加到退回的列表中?

时间:2011-05-13 18:53:04

标签: python

def f():
    lst = ['a', 'b', 'c']
    return lst[1:]

为什么f().append('a') is None == True即使f().__class__<type 'list'>f() == ['b', 'c']

4 个答案:

答案 0 :(得分:11)

因为append()返回None而不是列表对象。使用

l = f()
l.append('a')
...

答案 1 :(得分:2)

因为append()修改了列表,但没有返回它。

答案 2 :(得分:1)

试试这个:

f()+['a']

希望这有帮助

答案 3 :(得分:1)

在这种情况下,完全了解表达式和命令之间的区别总是好的。基本上有两种方法可以将值x附加到列表l

  1. 使用命令:l.append(x)。通常命令不返回任何值;它会产生某种副作用。
  2. 使用表达式l+[x]表示值并且不执行任何操作。即您指定l=l+[x]