Я изучаю Python и пытаюсь найти эффективный способ маркировки строки чисел, разделенных запятыми, в список. Хорошо сформированные случаи работают, как я ожидаю, но менее хорошо сформированные случаи не так много.
Если у меня есть это:
A = '1,2,3,4'
B = [int(x) for x in A.split(',')]
B results in [1, 2, 3, 4]
это то, что я ожидаю, но если строка более похожа на
A = '1,,2,3,4,'
если я использую то же самое выражение списка для B, что и выше, я получаю исключение. Я думаю, что понимаю, почему (потому что некоторые строковые значения "x" не являются целыми числами), но я думаю, что был бы способ разобрать это все еще довольно элегантно, так что токенизация строки a работает немного более прямо как strtok (A, ", \ n \ t") сделал бы, когда вызывается итеративно в C.
Чтобы было ясно, о чем я спрашиваю; Я ищу элегантный / эффективный / типичный способ для Python, чтобы иметь все следующие примеры случаев строк:
A='1,,2,3,\n,4,\n'
A='1,2,3,4'
A=',1,2,3,4,\t\n'
A='\n\t,1,2,3,,4\n'
возврат с тем же списком:
B=[1,2,3,4]
через какое-то компактное выражение.