【问题标题】:Different meanings of brackets in PythonPython中括号的不同含义
【发布时间】:2015-08-22 09:58:03
【问题描述】:

我很好奇,这 3 个不同的括号在 Python 编程中是什么意思?不知道我是否正确,但如果我错了,请纠正我:

  • [] - 通常用于字典、列表项
  • () - 用于识别参数
  • {} - 我不知道这是做什么的......

或者如果这些括号可以用于其他目的,欢迎提出任何建议!谢谢!

【问题讨论】:

    标签: python brackets


    【解决方案1】:

    []:列表和索引/查找/切片

    • 列表:[][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)
    【解决方案2】:

    () 括号用于表示操作顺序或求值顺序,称为 元组。 [] 括号用于列表。与 tuple 内容不同,列表内容可以更改。 {} 用于在称为 literal 的“列表”中定义字典。

    【讨论】:

    • “括号......被称为元组” -- 完全不正确。括号的用途远不止用于元组(例如,像print() 这样的调用),并且可以在没有括号的情况下定义元组(例如t = 1, 2)。
    • '{} 用于在称为文字的“列表”中定义字典。' -- 不,literals 根据定义是不可变的,因此不包括字典,它们是可变的。您可能会想到displays,其中包括“列表”和理解。
    【解决方案3】:

    除了 Maltysen 的答案和未来的读者:您可以通过定义方法在类中定义 ()[] 运算符:

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

    【讨论】:

      猜你喜欢
      • 2011-06-30
      • 2017-08-24
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多