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 中定义 ()[] 运算符:

一个例子是numpy.mgrid[...]。通过这种方式,您可以根据自己的喜好在定制对象上定义它。