Сканирование длинной строки и добавление дополнительного символа в Python - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужно отсканировать длинную строку, чтобы определить числа и ставить запятые после каждого числа. Но цифры не совпадают и случайно меняются.

маленький образец = 14 194 180 119 195 213 175 220 133 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 72 288 319 345 275 145 5

Вот то, что я пытался до сих пор

for i in range(len(my_values)):
if my_values[i] in (range(999)):
    my_values[i] = ","

Но это дало мне странный вывод

['0', '\ t', '0', '\ t', '0', '\ t', '0', '\ t', '0', «\ t», «1», «2», «5», «\ t», «2», «7», «1», «\ t», «3», «0», «8» , '\ t',

Примечание: функции isdi git или isNumeri c действительны для одного символа. Они не работали. Что я должен изменить, чтобы добавить запятые в строку после случайного изменения числа?

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Вы можете просто попытаться разбить строку на основе пробелов / табуляции и объединить полученные элементы, используя запятую:

new_str = ",".join(my_values.split(' '))    #or '\t' if they are separated by a tab
0 голосов
/ 14 апреля 2020

Вы можете получить все номера как:

>>> import re
>>> a = re.findall('-?\d+\.?\d*', sample)
>>> a
['14', '194', '180', '119', '195', '213', '175', '220', '133', '24', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '72', '288', '319', '345', '275', '145', '5']

, а затем присоединиться как:

>>> ", ".join(a)
'14, 194, 180, 119, 195, 213, 175, 220, 133, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 288, 319, 345, 275, 145, 5'
>>> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...