Как преобразовать строку чисел, разделенных запятыми, в число? - PullRequest
0 голосов
/ 09 июля 2020

Я хочу преобразовать список чисел, разделенных запятыми, в само число и количество раз, когда каждое число появлялось в конце появления этого числа, например:

"2,5,6,9,2,5,8,2,7,1,1,1,4"

Если это строка, удаление запятых даст:

2569258271114

Но я хочу это:

256191252823711341

Допустим, число 2 появилось 3 раза, поэтому я хочу написать 3 после последнего появления числа "2", которое появляется в приведенном выше номере ...823.... И так далее.

Я застрял, я могу сделать это долго, но мне нужен короткий код. Способ решения проблемы на pythoni c :) Любая помощь будет принята с благодарностью. TIA

1 Ответ

1 голос
/ 09 июля 2020

Вот как вы можете использовать Counter из модуля collections и str.find():

from collections import Counter

s = "2,5,6,9,2,5,8,2,7,1,1,1,4"
s = s.replace(',','') # Removes all commas
n = Counter(s) # Dictionary with different numbers as keys and their frequency as values

for a in n: # For every different number in n
    i = s.rfind(a) # Finds the index of the last appearance of the number
    s = s[:i+1]+str(n[a])+s[i+1:] # Inserts the frequency of the number on the right of the last appearance of it
    
print(s)

Вывод:

256191252812371111341
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...