Почему при вызове функции 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]

→ Ссылка