Как мне использовать len, чтобы получить количество элементов в списке (а не количество букв)? - PullRequest
0 голосов
/ 14 июля 2020

Я столкнулся с этой проблемой с len и кортежами. Я хочу узнать, сколько элементов в кортеже. Пока это работает для кортежей как минимум с двумя элементами.

Например:

> data = “cat”, “dog”
> len(data)
2

Это возвращает 2. Но если у меня только один элемент

> data = “cat”
> len(data)
3

Это возвращает 3, потому что он считает буквы. Я хочу, чтобы он возвращал 1, так как в данных одна строка.

Есть идеи, как я могу sh это сделать? Спасибо.

1 Ответ

5 голосов
/ 14 июля 2020

Это потому, что вы неправильно объявляете кортеж, когда вам нужен только один элемент в кортеже, вам нужно использовать tup = ('cat',) с конечной запятой, без конечной запятой python интерпретирует, что вы говорите о строке и поэтому возвращает длину этой строки.

Пример:

Кортеж:

tup = ('cat',) # notice the trailing comma meaning a tuple
print(len(tup)) # prints 1
print(type(tup)) # prints <class 'tuple'>

Строка:

tup = ('cat') # notice no trailing comma
print(len(tup)) # prints 3
print(type(tup)) # prints <class 'str'>
...