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)]