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}")