Python中括号的不同含义
Different meanings of brackets in Python
我很好奇,Python编程中3个不同的括号是什么意思?不知道我说的对不对,如有不对请指正:
[]
- 通常用于字典、列表项
()
- 用于识别参数
{}
- 我不知道这是做什么的...
或者如果这些括号可以用于其他用途,欢迎指教!谢谢!
() 括号用于运算顺序或求值顺序,称为 元组 。
[] 括号用于列表。列表内容可以更改,不像 tuple 内容。
{} 用于在 "list" 中定义字典,称为 文字。
[]
:列表和indexing/lookup/slicing
- 列表:
[]
、[1, 2, 3]
、[i**2 for i in range(5)]
- 索引:
'abc'[0]
→ 'a'
- 查找:
{0: 10}[0]
→10
- 切片:
'abc'[:2]
→'ab'
()
:元组、运算顺序、生成器表达式、函数调用等语法。
- 元组:
()
、(1, 2, 3)
- 尽管可以创建不带括号的元组:
t = 1, 2
→ (1, 2)
- 操作顺序:
(n-1)**2
- 生成器表达式:
(i**2 for i in range(5))
- 函数或方法调用:
print()
、int()
、range(5)
、'1 2'.split(' ')
- 使用生成器表达式:
sum(i**2 for i in range(5))
{}
:字典和集合,以及字符串格式
- 字典:
{}
、{0: 10}
、{i: i**2 for i in range(5)}
- 集:
{0}
、{i**2 for i in range(5)}
- 在 f 字符串和格式字符串中,指示替换字段:
f'{foobar}'
和 '{}'.format(foobar)
所有这些括号也用于正则表达式。基本上,[]
用于字符 类,()
用于分组,{}
用于重复。有关详细信息,请参阅 The Regular Expressions FAQ。
除了 Maltysen 的回答和未来的读者:您可以通过定义方法在 class 中定义 ()
和 []
运算符:
__call__(self[, args...])
对于 ()
__getitem__(self, key)
对于 []
一个例子是numpy.mgrid[...]
。通过这种方式,您可以根据自己的喜好在定制对象上定义它。
我很好奇,Python编程中3个不同的括号是什么意思?不知道我说的对不对,如有不对请指正:
[]
- 通常用于字典、列表项()
- 用于识别参数{}
- 我不知道这是做什么的...
或者如果这些括号可以用于其他用途,欢迎指教!谢谢!
() 括号用于运算顺序或求值顺序,称为 元组 。 [] 括号用于列表。列表内容可以更改,不像 tuple 内容。 {} 用于在 "list" 中定义字典,称为 文字。
[]
:列表和indexing/lookup/slicing
- 列表:
[]
、[1, 2, 3]
、[i**2 for i in range(5)]
- 索引:
'abc'[0]
→'a'
- 查找:
{0: 10}[0]
→10
- 切片:
'abc'[:2]
→'ab'
()
:元组、运算顺序、生成器表达式、函数调用等语法。
- 元组:
()
、(1, 2, 3)
- 尽管可以创建不带括号的元组:
t = 1, 2
→(1, 2)
- 尽管可以创建不带括号的元组:
- 操作顺序:
(n-1)**2
- 生成器表达式:
(i**2 for i in range(5))
- 函数或方法调用:
print()
、int()
、range(5)
、'1 2'.split(' ')
- 使用生成器表达式:
sum(i**2 for i in range(5))
- 使用生成器表达式:
{}
:字典和集合,以及字符串格式
- 字典:
{}
、{0: 10}
、{i: i**2 for i in range(5)}
- 集:
{0}
、{i**2 for i in range(5)}
- 在 f 字符串和格式字符串中,指示替换字段:
f'{foobar}'
和'{}'.format(foobar)
所有这些括号也用于正则表达式。基本上,[]
用于字符 类,()
用于分组,{}
用于重复。有关详细信息,请参阅 The Regular Expressions FAQ。
除了 Maltysen 的回答和未来的读者:您可以通过定义方法在 class 中定义 ()
和 []
运算符:
__call__(self[, args...])
对于()
__getitem__(self, key)
对于[]
一个例子是numpy.mgrid[...]
。通过这种方式,您可以根据自己的喜好在定制对象上定义它。