63

python中的花括号和方括号有什么区别?

A ={1,2}
B =[1,2]

当我在终端上打印时A,它们没有任何区别。B这是真的吗?

有时,我注意到一些代码使用{}[]初始化不同的变量。

例如A=[]B={}

有什么区别吗?

4

3 回答 3

96

花括号创建字典集合。方括号创建列表

它们被称为文字;一组文字:

aset = {'foo', 'bar'}

或字典文字:

adict = {'foo': 42, 'bar': 81}
empty_dict = {}

或列表文字:

alist = ['foo', 'bar', 'bar']
empty_list = []

要创建一个空集,您只能使用set().

集合是独特元素的集合,您不能对它们进行排序。列表是元素的有序序列,值可以重复。字典将键映射到值,键必须是唯一的。集合和字典键也必须满足其他限制,以便 Python 实际上可以有效地跟踪它们并知道它们是并且将保持唯一。

还有tupletype,对 1 个或多个元素使用逗号,括​​号在许多情况下是可选的:

atuple = ('foo', 'bar')
another_tuple = 'spam',
empty_tuple = ()
WARNING_not_a_tuple = ('eggs')

注意定义中的逗号another_tuple;是那个逗号使它成为a tuple,而不是括号。WARNING_not_a_tuple不是元组,它没有逗号。没有括号,你剩下的只是一个字符串。

有关详细信息,请参阅 Python 教程的数据结构章节;列表在介绍章节中介绍。

诸如此类的容器的文字也称为显示,并且语法允许基于循环的程序创建内容,称为理解

于 2014-03-13T21:35:42.750 回答
13

他们创造了不同的类型。

>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>
于 2014-03-13T21:37:44.153 回答
0

这两个支架用于不同的目的。如果您只想让列表包含一些元素并按索引号(从 0 开始)组织它们,只需[]根据需要使用和添加元素。{}特殊之处在于您可以将自定义 id 赋予诸如a = {"John": 14}. 现在,您无需列出年龄列表并记住谁的年龄在哪里,您可以通过 访问 John 的年龄a["John"]

[]称为列表,{}称为字典(在 Python 中)。字典基本上是一种方便的列表形式,它允许您以更简单的方式访问数据。

但是,字典有一个问题。很多时候,您放入字典中的数据不会保持与以前相同的顺序。因此,当您逐个检查每个值时,它不会按照您期望的顺序排列。有一个特殊的字典可以解决这个问题,但你必须添加这一行from collections import OrderedDict并替换{}OrderedDict(). 但是,我认为你现在不需要担心这个。

于 2015-07-18T18:52:33.120 回答