我有一个表单元组列表(用户,页面):
tuples = [(Tim, PageFoo), (Jen,PageBar), (Tim, PageBaz), ...]
我想在这个列表上循环并为每个用户创建一个新的列表或页面目录:
newlist = [(Tim,[PageFoo, PageBaz]), (Jen, [PageBar]), ...]
我的问题是,这些页面没有按用户的顺序排列,我需要检查NeWLIST以查看用户是否已经存在,如果是,请更新列表。
有人能帮我克服心理障碍吗?
最佳答案
@Aशwiniचhaudhary更快,但这里有一个defaultdict
解决方案:
from collections import defaultdict
tuples = [('Tim', 'PageFoo'), ('Jen','PageBar'), ('Tim', 'PageBaz')]
result = defaultdict(list)
for key, value in tuples:
result[key].append(value)
result
# Out[8]: defaultdict(<type 'list'>, {'Tim': ['PageFoo', 'PageBaz'], 'Jen': ['PageBar']})
dict(result)
# Out[9]: {'Jen': ['PageBar'], 'Tim': ['PageFoo', 'PageBaz']}
result.items()
# Out[10]: [('Tim', ['PageFoo', 'PageBaz']), ('Jen', ['PageBar'])]