代码之家  ›  专栏  ›  技术社区  ›  Ofek Ron

python元组,到底是什么意思[重复]

  •  1
  • Ofek Ron  · 技术社区  · 6 年前
    (0,)==(0)
    False
    

    在(0)中,什么意思?什么时候用这种元组而不是像(0)这样的正则元组有用?

    我认为这可能意味着索引1中的项目不是,但事实并非如此:

    (0,)[1]
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
    IndexError: tuple index out of range
    

    另外,如果我想(0,1,)变成(0,1),我该如何操作它?

    编辑:

    也许我对我的问题使用的例子过于简化了,这是我最初的问题:

    (('Suggest', 1.0), 65)==((('Suggest', 1.0),), 65)
    False
    

    所以我猜python不会像数学表达式那样插入(“建议”,1.0)?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Amber    6 年前

    (0) 不会被python解释为一个元组,而是作为一个数值表达式(比如 (1+2) 除非没有任何数学运算)。尾随逗号用于告诉Python它显式地是一个1元素元组。

    >>> type((0))
    <type 'int'>
    >>> type((0,))
    <type 'tuple'>
    

    (0) 计算结果为数字:

    >>> (0) == 0
    True
    

    (0,) 计算为一个元组,该元组不是数字…

    (0,)=0 假

    …但是是一个元组。

    >>> (0,) == tuple([0])
    True
    

    这也不特定于数字。- (expression) 将始终等同于 expression ,同时 (expression,) 将始终是一个元素tuple,其中tuple中的第一个(也是唯一一个)项是 表达 .