花括号的含义是什么?

72

23
from __future__ import braces 的翻译是:从__future__导入大括号 - robert
3
你真的应该仔细阅读这个教程 - Michael J. Barber
7
花括号 {} 不仅用于表示非空字典,也用于表示非空集合。要初始化一个 集合,可以使用语句 set() - RBT
5个回答

109

在Python中,我们使用“花括号”来定义字典。字典是一种数据结构,它将一个值映射到另一个值,有点像英语词典将单词映射到其定义一样。

例如:

dict = {
    "a" : "Apple",
    "b" : "Banana",
}

它们还用于格式化字符串,而不是像旧的C风格那样使用%,比如:

ds = ['a', 'b', 'c', 'd']
x = ['has_{} 1'.format(d) for d in ds]

print x

['has_a 1', 'has_b 1', 'has_c 1', 'has_d 1']

它们不像许多“C语言风格”的语言那样用于表示代码块。

C:

if (condition) {
    // do this
}

更新:除了Python的dict数据类型外,Python还有(自Python 2.7以来)set,也使用花括号,并声明如下:

my_set = {1, 2, 3, 4}

3
有没有办法让Python使用它们来表示代码块?我知道这个问题看起来有些疯狂,但我正在帮助当地一个盲童从这里转换到他在学校中的朋友们使用的语言(Python),而对于屏幕阅读器上的空格缩进来说实在是太可怕了。 - dumbledad
@dumbledad 你找到什么了吗?似乎需要一个能理解Python的屏幕阅读器 - 但是能找到吗? - Josiah Yoder
11
花括号也用来表示集合字面量,这类似于字典字面量,只是没有任何键或冒号(:)。 - Josiah Yoder
@dumbledad 你可以试试这个:https://github.com/ofajardo/pytwister - Otto Fajardo
@dumbledad: https://python-with-braces.appspot.com/ - naught101
Python 3.6 引入了使用带有花括号的格式化字符串('f')的功能,就像这样:varName = "Python" print(f"你好,{varName}") - Harry

23
在Python中,花括号用于定义字典。
a={'one':1, 'two':2, 'three':3}
a['one']=1
a['three']=3

在其他编程语言中,{ } 通常用作流程控制的一部分。然而,Python 使用缩进作为其流程控制的方式,因为它专注于可读性强的代码。

for entry in entries:
     code....

在Python中,括号有一个小彩蛋。尝试在Python Shell上运行以下代码并享受一下。

from __future__ import braces

1
from __future__ import braces 会出现 SyntaxError: not a chance 错误信息。这是一个更大的彩蛋。 - Yılmaz Alpaslan

10

在像 C 这样的语言中,花括号({})用于创建流程控制中使用的程序块。而在 Python 中,花括号用于定义一种数据结构,称为字典(键/值映射),而空格缩进则用于定义程序块。


5
在Python中,字典是存储键值对的数据结构。您可以像使用关联数组一样使用它们。在声明字典时使用花括号:
d = {'One': 1, 'Two' : 2, 'Three' : 3 }
print d['Two'] # prints "2"

在Python中,花括号不用于表示控制级别。相反,Python使用缩进来实现此目的。

我认为你需要一些好的资源来学习Python。请参见https://stackoverflow.com/q/175001/10077


我一直在学习《笨办法学Python》(这似乎有点争议),现在已经到了需要下载、打印和阅读代码的章节。我遇到了很多不懂的东西,花括号是我查阅资料时无法理解的唯一内容...因此我想问一下。 - JeanSibelius
@mattshepherd:也许它名副其实。8v) 但说真的,Python教程(就像Michael J. Barber链接的那样)非常好。你可以试试看。 - Fred Larson

0
一个字典就像是一个数组,但是它是通过键(例如字符串等)而不是顺序数字来访问的。它包含键/值对,您可以使用键查找值,就像使用电话簿一样:键=姓名,值=号码。
要定义这样的字典,您可以使用花括号的语法,参见:http://wiki.python.org/moin/SimplePrograms

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