【问题标题】:Why are double parentheses in tuples converted to single parentheses (Python)? [duplicate]为什么元组中的双括号转换为单括号(Python)? [复制]
【发布时间】:2020-06-14 10:04:05
【问题描述】:

当我将a 声明为((5, 3)) 时,我希望a[0] 等于(5, 3)。但是,Python 将表达式简化为 (5, 3)

为什么元组要这样简化,我必须使用列表来表达相同的东西吗? ((5, 3), (3, 8)) 工作正常。

【问题讨论】:

  • (...) 不是元组。 (...,) 是一个元组,(..., ...) 也是如此。与(1 + 3) * 4比较。
  • 单项元组必须以逗号结尾:((5, 3), )
  • @komatiraju032 有点,我正在寻找的答案已经在问题中了。

标签: python python-3.x


【解决方案1】:

必须使用语法(x,) 声明具有单个元素的元组。否则,括号将被解释为澄清计算(或改变操作的优先级)的一种方式。

【讨论】:

    【解决方案2】:

    如果您声明a=((1, 2), ),这将为您提供一个元组,其中第一个元素是另一个元组。

    a = ((1,2), )
    print(a[0])
    # Output: (1, 2)
    

    【讨论】:

      【解决方案3】:

      您可以添加一个空白值作为第二项,这样 Python 就不会简化元组:

      # Python Terminal
      >>> ((5, 3))
      (5, 3)
      >>> ((5, 3),)
      ((5, 3),)
      >>> ((5, 3),)[0]
      (5, 3)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-13
        • 2013-08-16
        • 2011-08-14
        • 1970-01-01
        • 1970-01-01
        • 2018-06-21
        相关资源
        最近更新 更多