PEP218:表示空集

看PEP218,有关于最合适的方法的讨论 代表空集. 提出的两个替代方案是{}和 { - }. 我想知道为什么需要其中任何一个. 为什么不只是使用 放()?. 它的字符比{ - }多两个,并且更明确. 同样,我发现自己用dict()初始化词典 比 {}. 我想念什么吗? - - 安德鲁·麦克莱恩

# 回答1

安德鲁·麦克莱恩(Andrew McLean)写道: 也许只不过是这种区别:dict()是一个呼叫 *返回*一个空词典. {} *是 *一个空词典. 同样地, set()返回一个空集,大概是{ - }直接 *是 *空的 放. 作为没有参与参与的人,我不知道多少 重视我的观察,但对我来说,它看起来像是一个可读性问题. 直接表示比函数调用/构造函数更好 方法... -peter
# 回答2

彼得·汉森(Peter Hansen)写道: 我不明白这些方式确实与众不同. a = [] 对于我在范围(2)中: A.append({}) 打印(A [0]是[1]) 打印0,如果有帮助. 显然" a = {}"和" a = dict()"两者都运行 一些创建新的空词典的代码. 不是这样 " a = {}"将a设置为在编译时间或任何内容上创建的空dict 像那样.
# 回答3

保罗·鲁宾(Paul Rubin)写道:我不明白这些方式确实与众不同. a = []对于范围(2)中的i:a.append({})print(a [0]是[1])打印0,如果有帮助. 显然," a = {}"和" a = dict()"都运行了一些创建新的空词典的代码. 并非" a = {}"将A设置为在编译时间或类似的内容中创建的空dict. 我同意. 在该示例中,两者都可以读取. 我认为我想到的例子是一个比较: 如果a == []: # 做一点事 如果b!= {}: A.申请(b) 管他呢. 我认为区别在于意图. 如果空项目是 将要保持周围并使用,然后似乎是构造函数的方法 合适的,甚至可以说更可读. 如果空项目 只是暂时的,要被使用和丢弃,然后是明显的 通话的额外开销和不太简洁的语法,使我进入 认为简短的形式是可取的. -peter
# 回答4

" Andrew McLean" 在消息中写道 新闻:EA **************@at-andros.demon.co.uk ...
# 回答5

彼得·汉森(Peter Hansen)写道: 但是无论哪种方式,您都会遭受头顶的痛苦. {}语法可能更糟 而不是函数调用语法,因为它看起来避免了 当它确实没有的时候开销. 避免的正确方法 开销与"如果Len(b)!= 0:...".
# 回答6

保罗·鲁宾(Paul Rubin 或者,我写的方式: 如果b: - - - 蒂姆·罗伯茨(Tim Roberts),ti@probo.com Providenza&Boekelheide,Inc.

标签: python

添加新评论