Python中append()与+=运算符的使用差异:列表添加字典为何失败?
为什么用
+=给列表添加字典失败,而append()可以? +=对列表来说是扩展操作,它要求右边必须是可迭代对象(比如列表、元组),会把可迭代对象里的每个元素逐个加到原列表里。
你的new_country是字典,字典作为可迭代对象时,默认遍历的是它的键。所以travel_log += new_country实际是把"country"、"visits"、"cities"这三个字符串分别塞进了列表,而不是整个字典,自然不符合预期。append()的逻辑很直接:把你传入的整个对象当成列表的一个新元素,直接加到末尾。不管你传的是字典、数字还是别的,它都原封不动地加进去,所以travel_log.append(new_country)能得到你想要的结果。
要是非得用+=实现同样效果,把字典包进一个列表里就行:travel_log += [new_country],这样右边是只含一个字典的列表,+=就会把这个字典作为单个元素加到原列表里。
内容的提问来源于stack exchange,提问作者Carlotta Ferri
相关产品推荐
相关产品推荐

