元组列表到元组列表

2024-04-20 09:37:42 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个当前按第一个元素排序的元组列表:

tuple_list = [(1, "hello", "apple"), (1, "no", "orange"),
    (2, "bye", "grape"), (3, "okay", "banana"),
    (4, "how are you?", "raisin"), (4, "I'm doing well", "watermelon")]

我想把这个元组列表转换成一个基于每个元组的第一个元素的元组列表。你知道吗

例如:

new_tuple_list = [[(1, "hello", "apple"), (1, "no", "orange")],
    [(2, "bye", "grape")], [(3, "okay", "banana")],
    [(4, "how are you?", "raisin"), (4, "I'm doing well", "watermelon")]]

Tags: no元素applehello列表arelisthow
2条回答

使用^{}根据整数对项进行分组:

from itertools import groupby

lst = [list(g)for _, g in groupby(tuple_list, lambda x: x[0])]
print(lst)

[[(1, 'hello', 'apple'), (1, 'no', 'orange')], 
 [(2, 'bye', 'grape')], 
 [(3, 'okay', 'banana')], 
 [(4, 'how are you?raisin'), (4, "I'm doing well", 'watermelon')]]

您可以使用^{}来实现:

[list(x) for k, x in itertools.groupby(tuple_list, operator.itemgetter(0))]

相关问题 更多 >