python中花括号和方括号之间的区别是什么?
A ={1,2}
B =[1,2]
当我在终端上打印A
和B
时,它们没有任何区别。这是真的吗?
有时,我注意到有些代码使用{}
和[]
来初始化不同的变量。
E.g。 A=[]
,B={}
那里有什么不同吗?
答案 0 :(得分:78)
大括号创建dictionaries或sets。方括号创建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()
。但是,我认为你现在不需要担心这一点。