gpt4 book ai didi

python - 创建一个以列表中元素的长度为键的字典

转载 作者:太空宇宙 更新时间:2023-11-04 06:58:24 25 4
gpt4 key购买 nike

我有一个列表,其中有多个元素作为元组存储在列表中,我想创建一个字典,其中键的长度为 1,2 等,以及相应长度的元素。列表的例子是

combination = [('A',), ('B',), ('C',), ('D',), ('A', 'B'), ('A','C'),
('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D'), ('A', 'B', 'C'),
('A', 'B', 'D'), ('A', 'C', 'D'), ('B', 'C', 'D'),('A', 'B', 'C', 'D')]

我试过了temp_dict = {len(i): i for i in combinations}

期望的输出是

{1: [('A',), ('B',), ('C',), ('D',)], 2: [('A', 'B'), ('A','C'),
('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')], 3: [('A', 'B', 'C'),
('A', 'B', 'D'), ('A', 'C', 'D'), ('B', 'C', 'D')], 4: [('A', 'B', 'C', 'D')]}```

最佳答案

您可以尝试在其中包含列表推导式的字典推导式

temp_dict = {len(i): [x for x in combination if len(x) == len(i)] for i in combination}
print(temp_dict)

或者您可以使用setdefault:

temp_dict = {}
for i in combination:
temp_dict.setdefault(len(i), []).append(i)
print(temp_dict)

两个输出:

{1: [('A',), ('B',), ('C',), ('D',)], 2: [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')], 3: [('A', 'B', 'C'), ('A', 'B', 'D'), ('A', 'C', 'D'), ('B', 'C', 'D')], 4: [('A', 'B', 'C', 'D')]}

关于python - 创建一个以列表中元素的长度为键的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56730793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com