简体   繁体   中英

How to convert a comma separated string of numbers to a number?

I want to convert a comma separated list of numbers into the number itself and number of times each number appeared appended at the end of appearance of that number, like this:

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

If this is the string, removing the commas will give:

2569258271114

But I want this:

256191252823711341

Let say the number 2 appeared 3 times, so i want to write 3 after the last appearance of number '2' which appears in the above number at ...823... . And so on.

I am stuck, I can do it the long way, but I need a short code. A pythonic way of solving the problem:) Any help will be appreciated. TIA

Here is how you can use Counter from the collections module, and 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)

Output:

256191252812371111341

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM