Python中的'{}'和'set()'有什么区别?

3

当我使用时

a = {}

a = set()

有时我看到使用如下:
a = set([])

它们是相同的吗?它们之间有什么区别?

我问这个问题是因为

a = set(range(5))
b = {0,1,2,3,4}
a == b
>>> True

这个问题的答案是否解决了您的疑问?创建一个空集合 - user3840170
4个回答

4

默认情况下,{} 在 Python 中代表一个空字典。然而,花括号既用于 dict 字面值,也用于 set 字面值。参见以下示例:

empty_set = set()
non_empty_set = {1,2,3}
empty_dict = {}
empty_dict2 = dict()
non_empty_dict = {"a": 1}

避免使用

a = set([]) # instead use a = set()

2
当您使用空括号初始化变量时,它将成为dict类型:
a = {}
print(f"type of a={type(a)}")

输出:

type of a=<class 'dict'>

然而,如果您使用某些值进行初始化,Python 将自动检测其类型。
b = {1, 2, 3}
print(f"type of b={type(b)}")

c = {"some_key": "some_value"}
print(f"type of c={type(c)}")

输出:

type of b=<class 'set'>
type of c=<class 'dict'>

集合和字典是两种不同的数据结构。您可以在此处详细了解它们:Python初学者指南:列表,元组,字典,集合


0

{} 字面上将是一个包含键值对的字典,而 set() 则是一个仅包含纯值的集合。当使用多个元素时,它们的字面值将根据是否包含键值对来区分。例如,{1: 'a', 2: 'b'}{1, 2}


-1

它们不是同一个东西。

{} 创建一个空字典(但 {1,2,3} 创建一个包含3个元素的集合:1、2、3)

set() 创建一个空集合


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接