2013-03-04 82 views
1

我有这样Python字典返回无

dict_a = {} 
dict_a["key1"] = [["1","2"]] 

我想用一个字符串3来连接这个字典里面的值[["1","2"]]的字典。所以我做了这样的事情:

new_list = list(dict_a["key1"]) 
dict_a["key1"] = new_list.append("3") 

当我打印的字典,关键key1它给了我一个None,而不是[ “1”, “2”], “3”]

print dict_a["key1"] 

甘蔗有人解释为什么我得到了“无”?

+4

append()不会返回一个列表,它会更新您要追加的列表。 – monkut 2013-03-04 11:45:25

+0

可能重复[Python,这是一个错误,追加到一个元组中的列表导致无?](http://stackoverflow.com/questions/9617906/python-is-this-a-bug-append-to -a-list-within-a-tuple-results-in-none) – 2013-03-04 11:48:52

+0

而[为什么python的list.append评估为false?](http://stackoverflow.com/q/1682567) – 2013-03-04 11:49:29

回答

2

是的,我可以。

基本上有2种方法:

  1. 那些创建并返回一个新的对象。

  2. 那些修改在就地操作的对象。他们没有返回self(这在某些情况下非常方便),他们按照惯例返回None

list.append()是后者之一,因此返回None

所以,你应该用

new_list.append("3") 
dict_a["key1"] = new_list 

更换

dict_a["key1"] = new_list.append("3") 

+2

或'dict_a [“key1”] + = [“3”]' – 2013-03-04 11:54:30

1

append()方法不返回任何值,因此默认情况下它返回None。如果你把它的结果赋给一个变量,它将是None。这就是为什么如果您打印该值,您会得到None