groups_per_user 函数接收一个字典,其中包含组名和用户列表。就像 Linux 系统中的组一样。用户可以属于多个组。填写空白以返回一个字典,其中用户作为键,他们的组列表作为值。
基本上我正在尝试将组分配给用户而不是用户分配给组
这就是我到目前为止所尝试的:
def groups_per_user(group_dictionary):
user_groups = {}
groups = []
# Go through group_dictionary
for group,users in group_dictionary.items():
# Now go through the users in the group
for user in users:
# Now add the group to the list of
# groups for this user, creating the entry
# in the dictionary if necessary
groups.append(group)
user_groups[user] = group
return(user_groups)
print(groups_per_user({"local": ["admin", "userA"],
"public": ["admin", "userB"],
"administrator": ["admin"] }))
如何遍历抛出列表,同时尽可能高效地将用户添加到组名中?
请原谅我的语法,这是我的第一个问题。谢谢
原文由 Abdu Samaraie 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的代码的问题是只有一个
groups
列表,而您真正想要的是每个用户的组列表。尝试这个或者,我们可以用
setdefault
调用替换这三行:第三种选择是使用 defaultdict: