Объект типа "карта" не имеет len() в Python 3

у меня проблема с Python 3. Я получил код Python 2.7, и на данный момент я пытаюсь его обновить. Я получаю сообщение об ошибке:

TypeError: объект типа "карта" не имеет len()

в этой части:

str(len(seed_candidates))

прежде чем я инициализировал его следующим образом:

seed_candidates = map(modify_word, wordlist)

так, может кто-нибудь объяснить мне, что я должен делать?

(EDIT: ранее этот пример кода был неправильным, потому что он использовал set вместо map. Он был сейчас обновляются.)

1 ответов


В Python 3, map возвращает объект карты, а не list:

>>> L = map(str, range(10))
>>> print(L)
<map object at 0x101bda358>
>>> print(len(L))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'map' has no len()

вы можете преобразовать его в список, а затем получить длину оттуда:

>>> print(len(list(L)))
10