Что означает запятая в конце len (list)? - PullRequest
0 голосов
/ 14 апреля 2020

Мне интересно, почему запятую можно добавить в конце len (list) для ссылки на последний элемент в списке. Кто-нибудь может объяснить это? Это работает только в списке? Как насчет других элементов в списке - Могу ли я получить доступ, используя len (список) ?

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

Выходной номер 6.

Ответы [ 2 ]

2 голосов
/ 14 апреля 2020
for num in len(nums),: 

Эквивалентно:

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

Где (len(nums), ) - это один кортеж, кортеж с одним элементом.

Причина этого обозначения заключается в том, что если я сделаю

(len(nums)) без окончания , (запятая), тогда Python решит, что это то же самое, что и len(nums) и не является кортежем вообще, поскольку нам нужна возможность использовать скобки для многих вещей, например. для таких операций, как

(1 + 2) * 3

Итак, у нас есть конечная запятая, чтобы различать guish кортеж

Со списками это не нужно, и мы можем просто исправить что-то вроде [len(nums)]

2 голосов
/ 14 апреля 2020

len(list) возвращает одно целое число, соответствующее количеству элементов в вашем списке list (кроме того, оно имеет плохое имя, так как вам следует избегать использования встроенных имен для ваших переменных). Запятая в for num in len(list), превращает ее в одн кортеж, что означает, что for l oop может выполнять итерацию одного элемента, что можно увидеть, запустив интерактивный интерпретатор:

len(list),

Вывод:

(6,)

Ваш for l oop, как вы указываете, напечатает: 6, что составляет list. Он не имеет доступа к последнему элементу list, который является 60.

Этот for l oop является необычным использованием этого синтаксиса, поскольку очевидно, что будет только один элемент и не нужно повторять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...