关于语法:python中的大括号和方括号有什么区别?

What is the difference between curly brace and square bracket in Python?

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

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

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

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

例如:A=[]B={}

有什么区别吗?


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

它们被称为文本;集合文本:

1
aset = {'foo', 'bar'}

或字典文字:

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

或列表文字:

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

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

集合是唯一元素的集合,不能对它们排序。列表是元素的有序序列,值可以重复。字典将键映射到值,键必须是唯一的。set和dictionary键也必须满足其他限制,以便python能够有效地跟踪它们,并知道它们是唯一的。

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

1
2
3
4
atuple = ('foo', 'bar')
another_tuple = 'spam',
empty_tuple = ()
WARNING_not_a_tuple = ('eggs')

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

有关更多详细信息,请参见Python教程的"数据结构"一章;介绍一章中介绍了列表。

这些容器的文本也称为显示,并且语法允许基于循环(称为理解)的内容的过程性创建。


它们创建不同的类型。

1
2
3
4
5
6
7
8
9
10
>>> type({})
<type 'dict'>
>>> type([])
<type 'list'>
>>> type({1, 2})
<type 'set'>
>>> type({1: 2})
<type 'dict'>
>>> type([1, 2])
<type 'list'>


这两个支架的用途不同。如果您只希望一个列表包含一些元素并按索引编号(从0开始)组织它们,那么只需使用[],并根据需要添加元素。{}是特殊的,因为您可以将自定义ID提供给像a = {"John": 14}这样的值。现在,您可以通过a["John"]访问约翰的年龄,而不是列出年龄和记住谁的年龄在哪里。

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

然而,字典有一个缺点。很多时候,你放在字典里的数据和以前的顺序不一样。因此,当您逐一检查每个值时,它将不符合您期望的顺序。有专门的字典可以解决这个问题,但是您必须添加这一行from collections import OrderedDict,并用OrderedDict()替换{}。但是,我认为你暂时不需要担心这个问题。