Почему при вызове функции map подсчет цифр некорректен?
a = str([1,1])
b = list(map(len, a))
print(b)
Ответы (2 шт):
Автор решения: Zhihar
→ Ссылка
а что вы хотели получить?
str([1, 1])
переведет список [1, 1] в строку "[1, 1]"
это можно проверить сделав обратную операцию
list(str([1, 1]))
и получить ['[', '1', ',', ' ', '1', ']']
дальше вы применяете map к символам строки ['[', '1', ',', ' ', '1', ']']
длина символа - 1, всего в строке 6 символов, в результаты вы получаете новый список из 6 единичек [1, 1, 1, 1, 1, 1]
Автор решения: Danis
→ Ссылка
Вы написав a = str([1, 1]) превращаете весь массив в строку, вам надо отдельно на каждый элемент применить функцию str
a = map(str, [123, 52])
b = list(map(len, a))
print(b)
вывод:
[3, 2]