Python用相同的第一个值对列表中的元组进行分组
在本教程中,我们将编写一个程序,以相同的第一个元素将所有元组分组。让我们看一个例子来清楚地理解它。
输入项
[(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]
输出结果
[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]
让我们看看解决问题的步骤。
初始化列表。
初始化一个空字典。
遍历元组列表。
检查元组的第一个元素是否在字典中作为键存在。
如果存在,则将当前元组值附加第一个值而不添加第一个值。
如果不存在,则使用当前元组元素(包括第一个元素)初始化键。
将字典的值打印为列表。
示例
# initializing the list
tuples = [(1, 2, 3), (1, 4, 5), (3, 4, 1), (3, 4, 2)]
# empty dict
result = {}
# iterating over the tuples
for sub_tuple in tuples:
#检查结果中元组的第一个元素
if sub_tuple[0] in result:
#添加没有第一个元组值的当前元组值
result[sub_tuple[0]] = (*result[sub_tuple[0]], *sub_tuple[1:])
else:
#添加元组
result[sub_tuple[0]] = sub_tuple
#在列表中打印结果
print(list(result.values()))输出结果
[(1, 2, 3, 4, 5), (3, 4, 1, 4, 2)]