def f():
lst = ['a', 'b', 'c']
return lst[1:]
为什么f().append('a') is None == True
即使f().__class__
为<type 'list'>
和f() == ['b', 'c']
答案 0 :(得分:11)
因为append()
返回None
而不是列表对象。使用
l = f()
l.append('a')
...
答案 1 :(得分:2)
因为append()
修改了列表,但没有返回它。
答案 2 :(得分:1)
试试这个:
f()+['a']
希望这有帮助
答案 3 :(得分:1)
在这种情况下,完全了解表达式和命令之间的区别总是好的。基本上有两种方法可以将值x
附加到列表l
l.append(x)
。通常命令不返回任何值;它会产生某种副作用。l+[x]
表示值并且不执行任何操作。即您指定l=l+[x]