Python 2中没有 固定的文字 ,历史上花括号仅用于字典。集可以从列表(或任何可迭代对象)中产生:
set([1, 2, 3])set([i for i in range(1, 3)])
Python
3引入了集合文字和理解(请参阅PEP-3100),这使我们能够避免中间列表:
{1, 2, 3}{i for i in range(1, 3)}
但是,由于向后兼容,空集形式保留给字典使用。在P3K中来自[Python-3000]集合的引用?状态:
我确信我们可以解决问题—我同意,
如果不是为了向后兼容,那么{}空集和{:}空dict是理想的。当我第一次写PEP时,我喜欢“特殊的空对象”的想法(即,{}可能变成集合或字典的东西),但是这里的一位指导者说服我,这只会导致新来者的困惑。思想(以及实施的痛苦)。
将以下信息更好地描述这些规则:
我认为Guido是最好的解决方案。使用
set()空集时,用{}空类型的字典,使用{genexp}了一套推导/显示器,使用{1,2,3}显式集文字,和使用{k1:v1, k2:v2}的字典文字。如果需求超出需求,我们可以随时添加{/}。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)