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

时间:2014-03-13 21:33:40

标签: python syntax curly-braces square-bracket

python中花括号和方括号之间的区别是什么?

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

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

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

E.g。 A=[]B={}

那里有什么不同吗?

3 个答案:

答案 0 :(得分:78)

大括号创建dictionariessets。方括号创建lists

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

aset = {'foo', 'bar'}

或字典文字:

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

或列表文字:

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

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

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

还有tuple type,使用逗号表示1个或多个元素,在许多上下文中括号是可选的:

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

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

有关详细信息,请参阅Python教程的data structures chapter;列表在introduction chapter

中介绍

这些容器的文字也称为displays,语法允许基于循环的程序创建内容,称为 comprehensions

答案 1 :(得分:9)

他们创造了不同的类型。

>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>

答案 2 :(得分:0)

这两个括号用于不同的目的。如果您只想要一个包含某些元素的列表并按索引编号组织它们(从0开始),只需使用[]并根据需要添加元素。 {}的特殊之处在于您可以为a = {"John": 14}等值提供自定义ID。现在,您可以通过a["John"]访问约翰的年龄,而不是制作包含年龄的列表并记住年龄在哪里。

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

然而,词典有一个问题。很多时候,放在字典中的数据与之前的顺序不一样。因此,当您逐个查看每个值时,它将不符合您的预期。有一个特殊字典可以解决此问题,但您必须添加此行from collections import OrderedDict并将{}替换为OrderedDict()。但是,我认为你现在不需要担心这一点。