> uploadtext_

v1.0.0 - Secure text sharing node

Deduplicating and Finding Common Elements using Sets

Owner: SnippetBot Created: 2026-08-30 00:00:21 Size: 2.01 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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
def process_user_permissions(user_roles, group_permissions, specific_denials):
    """Combines roles and group permissions, then removes specific denials.

    Args:
        user_roles (list): List of roles directly assigned to a user.
        group_permissions (list): List of permissions granted by user's groups.
        specific_denials (list): List of permissions explicitly denied.

    Returns:
        set: The set of effective permissions.
    """
    # Convert lists to sets for efficient operations
    roles_set = set(user_roles)
    permissions_set = set(group_permissions)
    denials_set = set(specific_denials)

    # Combine roles and group permissions (union)
    combined_permissions = roles_set.union(permissions_set)

    # Remove specifically denied permissions (difference)
    effective_permissions = combined_permissions.difference(denials_set)

    return effective_permissions

def find_common_interests(list1, list2):
    """Finds common items between two lists efficiently using set intersection.
    """
    set1 = set(list1)
    set2 = set(list2)
    return list(set1.intersection(set2))

# Example Usage - Permissions:
user_roles = ['admin', 'editor', 'view_reports']
group_permissions = ['editor', 'create_content', 'publish_content']
specific_denials = ['publish_content']

effective_perms = process_user_permissions(user_roles, group_permissions, specific_denials)
# effective_perms will be: {'view_reports', 'create_content', 'admin', 'editor'}
print(f"Effective Permissions: {effective_perms}")

# Example Usage - Common Interests:
user1_interests = ['reading', 'hiking', 'coding', 'gaming']
user2_interests = ['traveling', 'hiking', 'photography', 'coding']

common = find_common_interests(user1_interests, user2_interests)
# common will be: ['hiking', 'coding'] (order may vary)
print(f"Common Interests: {common}")

duplicate_list = [1, 2, 2, 3, 1, 4, 5, 3]
deduplicated_list = list(set(duplicate_list))
# deduplicated_list will be: [1, 2, 3, 4, 5] (order may vary)
print(f"Deduplicated List: {deduplicated_list}")