【问题标题】:What does the comma at end of len(list) mean?len(list) 末尾的逗号是什么意思?
【发布时间】:2020-04-14 03:38:31
【问题描述】:

我很好奇为什么可以在 len(list) 末尾添加逗号以引用列表中的最后一项。谁能解释一下? 它仅在列表中有效吗?列表中的其他项目怎么样 - 我也可以使用 len(list) 访问吗?

list=[10,20,30,40,50,60]
for num in len(list),: 
    print(num,end=" ")

输出个数为 6。

【问题讨论】:

  • “我很好奇为什么可以在 len(list) 的末尾添加逗号以引用列表中的最后一项” - 你不是指最后一项全部。如果你运行这段代码,你会看到它打印出 6(和一个空格),而不是 60。

标签: python python-3.x list


【解决方案1】:

len(list) 返回一个整数,对应于列表中的元素数量list(顺便说一句,它的命名很糟糕,因为您应该避免为变量使用内置名称)。 for num in len(list), 中的逗号将其变成了单元组,意味着 for 循环可以迭代一项,在交互式解释器中运行可以看到:

len(list),

输出:

(6,)

您的for 循环,如您所指出的,将打印:6,这是list 的长度。它不访问list 的最后一个元素,即60

for 循环是这种语法的不寻常用法,因为很明显只有一个元素,不需要迭代。

【讨论】:

    【解决方案2】:
    for num in len(nums),: 
    

    相当于:

    >>> nums = [10,20,30,40,50,60]
    >>> for num in (len(nums), ):
    ...   print(num)
    ... 
    6
    

    (len(nums), ) 是一个单元组,一个包含 1 个单个元素的元组。

    这个符号的原因是因为如果我这样做

    (len(nums)) 没有结尾 ,(逗号)然后 Python 决定它与 len(nums) 相同,而不是一个元组,因为我们需要能够在很多事情上使用括号,例如。对于像

    这样的操作
    (1 + 2) * 3
    

    所以我们有结束逗号来区分一个元组

    对于列表,这不是必需的,我们可以简单地写类似[len(nums)]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-08
      • 2012-05-07
      • 2012-10-31
      • 1970-01-01
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多