Python – Strings with all given List characters

When working with strings and lists in Python, you might need to find strings that contain all characters from a given list. This is useful for filtering data or validating input based on character requirements.

Method 1: Using set() and issubset()

This approach converts both the required characters and string characters to sets, then checks if all required characters are present ?

def has_all_characters(text, required_chars):
    return set(required_chars).issubset(set(text))

# Test with different strings
required = ['a', 'b', 'c']
test_strings = ["abc", "abcdef", "xyz", "cab"]

print("Required characters:", required)
print("Testing strings:")

for text in test_strings:
    result = has_all_characters(text, required)
    print(f"'{text}' has all required chars: {result}")
Required characters: ['a', 'b', 'c']
Testing strings:
'abc' has all required chars: True
'abcdef' has all required chars: True
'xyz' has all required chars: False
'cab' has all required chars: True

Method 2: Using all() with List Comprehension

This method uses the all() function to check if every required character exists in the target string ?

def contains_all_chars(text, required_chars):
    return all(char in text for char in required_chars)

# Example with multiple test cases
required = ['p', 'y', 't', 'h', 'o', 'n']
test_strings = ["python", "programming", "java", "pythonic"]

print("Required characters:", required)
print("\nResults:")

for text in test_strings:
    result = contains_all_chars(text, required)
    print(f"'{text}': {result}")
Required characters: ['p', 'y', 't', 'h', 'o', 'n']

Results:
'python': True
'programming': False
'java': False
'pythonic': True

Method 3: Character Count Validation

When you need to ensure minimum character counts, use Counter from the collections module ?

from collections import Counter

def has_min_char_count(text, required_chars):
    text_count = Counter(text.lower())
    required_count = Counter(required_chars)
    
    for char, min_count in required_count.items():
        if text_count[char] < min_count:
            return False
    return True

# Test with repeated characters
required = ['l', 'l', 'o']  # Need at least 2 'l's and 1 'o'
test_words = ["hello", "logo", "pool", "cool"]

print("Required characters (with counts):", required)
for word in test_words:
    result = has_min_char_count(word, required)
    print(f"'{word}': {result}")
Required characters (with counts): ['l', 'l', 'o']
'hello': True
'logo': False
'pool': True
'cool': True

Filtering Strings from a List

Combine these methods to filter a list of strings based on character requirements ?

def filter_strings_with_chars(string_list, required_chars):
    return [s for s in string_list if set(required_chars).issubset(set(s.lower()))]

# Example: Find words containing vowels 'a' and 'e'
words = ["apple", "orange", "banana", "grape", "kiwi", "pear"]
required_vowels = ['a', 'e']

filtered_words = filter_strings_with_chars(words, required_vowels)

print("Original words:", words)
print("Required characters:", required_vowels)
print("Words with both 'a' and 'e':", filtered_words)
Original words: ['apple', 'orange', 'banana', 'grape', 'kiwi', 'pear']
Required characters: ['a', 'e']
Words with both 'a' and 'e': ['apple', 'orange', 'grape', 'pear']

Comparison

Method Best For Performance Use Case
set().issubset() Unique character presence Fast Basic character validation
all() with in Simple readable code Medium Small character sets
Counter Character count requirements Slower When duplicates matter

Conclusion

Use set().issubset() for basic character presence checking. Use Counter when character frequency matters. The all() method provides the most readable solution for simple cases.

Updated on: 2026-03-26T01:42:08+05:30

430 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements