﻿ Python: Compress repeated character by storing the length of a given string - w3resource

# Python: Compress repeated character by storing the length of a given string

## Python Itertools: Exercise-17 with Solution

Write a Python program to read a given string character by character and compress repeated characters by storing the length of those character(s).

Sample Solution:

Python Code:

``````from itertools import groupby
def encode_str(input_str):
return [(len(list(n)), m) for m,n in groupby(input_str)]

str1 = "AAASSSSKKIOOOORRRREEETTTTAAAABBBBBBDDDDD"
print("Original string:")
print(str1)
print("Result:")
print(encode_str(str1))

str1 = "jjjjiiiiooooosssnssiiiiwwwweeeaaaabbbddddkkkklll"
print("\nOriginal string:")
print(str1)
print("Result:")
print(encode_str(str1))
```
```

Sample Output:

```Original string:
AAASSSSKKIOOOORRRREEETTTTAAAABBBBBBDDDDD
Result:
[(3, 'A'), (4, 'S'), (2, 'K'), (1, 'I'), (4, 'O'), (4, 'R'), (3, 'E'), (4, 'T'), (4, 'A'), (6, 'B'), (5, 'D')]

Original string:
jjjjiiiiooooosssnssiiiiwwwweeeaaaabbbddddkkkklll
Result:
[(4, 'j'), (4, 'i'), (5, 'o'), (3, 's'), (1, 'n'), (2, 's'), (4, 'i'), (4, 'w'), (3, 'e'), (4, 'a'), (3, 'b'), (4, 'd'), (4, 'k'), (3, 'l')]
```

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿