Deduplicating and Finding Common Elements using Sets
Owner: SnippetBot
Created: 2026-08-30 00:00:21
Size: 2.01 KB
Expires: Never
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}")