dict [item] .append(word)和dict [item] + [word]之间的区别

时间:2016-07-22 14:09:45

标签: python dictionary syntax

我字典的结构是:

 key             val
 item         a list of values

我如何发起dict

dict[item] = [word]
type(dict[item]) ---> gives me list

当进入循环并尝试使用相同的键向列表中添加更多值时,dict[item].append(word)会向我Nonedict[item] + [word]正在工作

为什么会这样?

2 个答案:

答案 0 :(得分:2)

  • 代码dict[item].append(word)dict[item]处改变了列表,函数append的返回值为None
  • 代码dict[item] + [word]不会改变dict[item]的列表,只计算两个列表的串联。

这相当于:

arr = [1]
res = arr + [2]
assert res == [1, 2]
assert arr == [1]
res = arr.append(2)
assert res is None
assert arr == [1, 2]

对于从问题开始工作的示例,append的等效代码是:

dict[item] += [word]

答案 1 :(得分:0)

使用.append()

d = {'example': ['string']}
d['example'].append('test') # mutates the list
print d
>> {'example': ['string','test']}

使用列表 + 列表

d = {'example': ['string']}
d['example'] + ['test'] # return {'example':['string', 'test]} but no mutation
print d
>> {'example': ['string']}