Стандартным решением является использование решения, отправленного yuk,
a = (str == '1');
, которое дает логический результат.Если вам нужен двойной,
a = double(str == '1');
или даже просто:
a = +(str == '1');
Возможно, самое простое решение выглядит так:
a = str - 48;
, хотя я думаю, чтопоследний наименее очевиден относительно того, что он делает.Я предпочитаю код, который легко читать и понимать цель.Эта цель лучше всего достигается с помощью второго решения, ИМХО.