Generate two output strings depending upon occurrence of character in input string in Python

In Python, a string is a sequence of characters enclosed within single quotes '' or double quotes "". When processing strings, we often need to analyze character occurrence patterns to generate different outputs based on frequency.

To generate two output strings based on character occurrence in Python, we follow these steps:

  • Count the frequency of each character in the input string using a dictionary or collections.Counter
  • Separate characters into two categories:
    • Characters that appear exactly once
    • Characters that appear more than once
  • Generate two output strings from these character groups

Using collections.Counter Class

The collections.Counter class counts the frequency of elements in an iterable and returns a dictionary-like object where elements are keys and their counts are values.

Example

Here's how to separate characters based on their occurrence frequency ?

from collections import Counter

def generate_strings_by_occurrence(text):
    # Count frequency of each character
    char_count = Counter(text)
    
    # Get characters occurring once
    single_occurrence = [char for char, count in char_count.items() if count == 1]
    
    # Get characters occurring more than once  
    multiple_occurrence = [char for char, count in char_count.items() if count > 1]
    
    # Sort the characters
    single_occurrence.sort()
    multiple_occurrence.sort()
    
    print('Characters occurring once:')
    print(''.join(single_occurrence))
    print('Characters occurring more than once:')
    print(''.join(multiple_occurrence))

# Test the function
text = "Tutorialspoint has best tutorials"
generate_strings_by_occurrence(text)
Characters occurring once:
Tbehnp
Characters occurring more than once:
 ailorstu

Using Dictionary Method

You can also achieve the same result using a regular dictionary to count character frequencies ?

def generate_strings_with_dict(text):
    # Count character frequency using dictionary
    char_count = {}
    for char in text:
        char_count[char] = char_count.get(char, 0) + 1
    
    # Separate characters by occurrence
    single_chars = []
    multiple_chars = []
    
    for char, count in char_count.items():
        if count == 1:
            single_chars.append(char)
        elif count > 1:
            multiple_chars.append(char)
    
    # Sort and display results
    single_chars.sort()
    multiple_chars.sort()
    
    return ''.join(single_chars), ''.join(multiple_chars)

# Test the function
text = "programming"
single, multiple = generate_strings_with_dict(text)

print(f"Original text: {text}")
print(f"Single occurrence: {single}")
print(f"Multiple occurrence: {multiple}")
Original text: programming
Single occurrence: gno
Multiple occurrence: amr

Comparison

Method Advantages Best For
collections.Counter Built-in, clean syntax Simple character counting tasks
Dictionary approach More control, no imports needed Custom counting logic requirements

Conclusion

Both collections.Counter and dictionary methods effectively separate characters by occurrence frequency. Use Counter for cleaner code or dictionaries when you need more control over the counting process.

Updated on: 2026-03-25T06:46:46+05:30

208 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements