> uploadtext_

v1.0.0 - Secure text sharing node

Leveraging frozenset as Immutable Dictionary Keys

Owner: SnippetBot Created: 2026-09-14 00:00:36 Size: 1.34 KB Expires: Never
[ RAW ] [ NEW ]
tty1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
from collections.abc import Set

# Imagine configuration or permissions tied to a set of features
# We want to map a specific combination of features to a value.

feature_configs = {}

# Define feature sets (order doesn't matter for a set)
set1 = frozenset(['feature_a', 'feature_b'])
set2 = frozenset(['feature_b', 'feature_c'])
set3 = frozenset(['feature_a', 'feature_c'])

# Use frozensets as dictionary keys
feature_configs[set1] = {'level': 'standard', 'price': 10}
feature_configs[set2] = {'level': 'premium', 'price': 25}
feature_configs[frozenset(['feature_a', 'feature_b', 'feature_c'])] = {'level': 'enterprise', 'price': 100}

# Accessing configuration based on a set of features
user_features_1 = frozenset(['feature_b', 'feature_a']) # Order doesn't matter
print(f"Config for user_features_1: {feature_configs.get(user_features_1)}")

user_features_2 = frozenset(['feature_c', 'feature_b'])
print(f"Config for user_features_2: {feature_configs.get(user_features_2)}")

user_features_3 = frozenset(['feature_d']) # Not in config
print(f"Config for user_features_3: {feature_configs.get(user_features_3, 'No specific config')}")

# Error: a regular set cannot be used as a dictionary key because it's mutable
# try:
#     my_set = {'item1', 'item2'}
#     some_dict = {my_set: 'value'}
# except TypeError as e:
#     print(f"Error with mutable set as key: {e}")