В качестве примера:
>> s = '0123456'
>> list(s)
['0', '1', '2', '3', '4', '5', '6']
Я придумал это:
>> map( lambda x:int(x), list(s) )
[0, 1, 2, 3, 4, 5, 6]
Можно ли это улучшить?
Просто используйте представление списка или, если необходимо, выражение генератора. Простой и немного более быстрый (возможно) более читаемый.
[int(x) for x in s]
>>> map(int, ['1', '2'])
[1, 2]
>>> map(int, '123')
[1, 2, 3]
В вашем подходе нет ничего плохого, потому что нет необходимости преобразовывать строку в список, поскольку строки являются итерабельными.
>>> s = '0123456'
>>> map(lambda x:int(x), s)
[0, 1, 2, 3, 4, 5, 6]
Если вы предпочитаете понимание/итератор списка, см . Ответ @zeekay.