【发布时间】:2011-08-01 03:58:28
【问题描述】:
今天我花了大约 20 分钟试图找出原因 这按预期工作:
users_stories_dict[a] = s + [b]
但这会有一个None 值:
users_stories_dict[a] = s.append(b)
有人知道为什么 append 函数不返回新列表吗?我正在寻找做出这个决定的某种合理原因;现在对我来说,它看起来像是一个 Python 新手。
【问题讨论】:
-
append()未记录为返回值。是什么让你认为它做到了?您从哪里得到 append 返回值的想法?您阅读的哪些文档表明了这种情况? -
users_stories_dict[a].extend(b)顺便说一句 -
@Jochen:
users_stories_dict[a].extend(b)仅在b是可迭代的情况下才有效。假设b是一个字符串,比较a_list.append(b)和a_list.extend(b)。顺便说一句,list.extend()也像list.append()一样返回None。 -
@S.Lott 公平地说,在函数式编程语言中,list() 是不可变的,
.append()返回一个新列表。这不是一个不合理的假设。