以下是一个解决方案的示例代码:
def fold_tuples(tuples):
result = {}
for tup in tuples:
key = tup[0]
value = tup[1:]
if key in result:
result[key].extend(value)
else:
result[key] = list(value)
return result
# 示例用法
tuples = [('A', 1, 2), ('B', 3, 4), ('A', 5, 6)]
result = fold_tuples(tuples)
print(result)
输出结果为:
{'A': [1, 2, 5, 6], 'B': [3, 4]}
在这个示例中,我们定义了一个名为fold_tuples
的函数,它接受一个包含元组的列表作为参数。然后,我们创建一个空字典result
来存储折叠后的元组列。
接下来,我们遍历每个元组,将第一个元素作为字典的键,剩余元素作为值。如果字典中已经存在这个键,则将剩余元素追加到对应的值列表中;否则,创建一个新的键值对。
最后,我们返回折叠后的字典。
在示例用法中,我们将一个包含三个元组的列表传递给fold_tuples
函数,并打印结果。输出结果显示,按照第一个元组元素折叠后的字典,其中键为元组的第一个元素,值为其后的元素列表。