У меня часто есть список «предварительно сжатых» данных (элементы - списки). Я пытаюсь преобразовать каждый элемент в целое число (обычно из входной строки).
Как я могу превратить каждый элемент в сложном списке в целое число?
Сначала я попытался понять список:
ls = ["1", "2", ["3", "4", "5"], "6"]
ls = [int(i) for i in ls]
Но функция int не может быть повторяемой, поэтому она разбивается на int (["3", "4", "5"])
1010 *
*
Осмотревшись, я узнал о функции map (), которая применяет функцию к каждому элементу в итерируемой.
ls = ["1", "2", ["3", "4", "5"], "6"]
print(map(lambda x: int(x), ls))
Вышеприведенный код выводит
<map object at 0x000001A84C46E898>
Но когда я пытаюсь преобразовать это в список, я получаю сообщение об ошибке
ls = ["1", "2", ["3", "4", "5"], "6"]
print(list(map(lambda x: int(x), ls)))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
Для меня это звучит так, будто map передает функции int () список. Я также попробовал itertools.starmap ():
import itertools
ls = ["1", "2", ["3", "4", "5"], "6"]
print(list(itertools.starmap(lambda x: int(x), ls)))
Это, однако, похоже, ведет себя так же, как map (): возвращает объект карты, который не может быть преобразован в список.
Помощь очень ценится. Спасибо!