基于元组Python中的值对列表进行分区

2024-05-15 03:43:01 发布

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

在python中对元组列表进行分区的最佳方法是什么?在

目前,我有一个按第二个元素(一个值)排序的元组列表,我希望以一种高效的方式找到所有在开头重复的值。在

说:

[ ("tearing", 3), ("me", 3), ("apart", 3), ("lisa", 3), 
  ("denny", 0), ("mark",0) ]

通过函数运行它将返回

^{pr2}$

但我不知道该怎么做。在


Tags: 方法函数元素列表排序方式me元组
3条回答
from itertools import takewhile

L = [("tearing", 3), ("me", 3), ("apart", 3), ("lisa", 3), ("denny", 0), ("mark",0)]
first = L[0][1]

print list(takewhile(lambda x : x[1] == first, L))

伊格纳西奥的一个小变种

替代@Ignacio Vazquez Abrams的答案,使用列表理解:

>>> data=[ ("tearing", 3), ("me", 3), ("apart", 3), ("lisa", 3), ("denny", 0), ("mark",0) ]
>>> print [x for x in data if x[-1]== data[0][-1]]
[('tearing', 3), ('me', 3), ('apart', 3), ('lisa', 3)]
import itertools
import operator

L = [("tearing", 3), ("me", 3), ("apart", 3), ("lisa", 3), ("denny", 0), ("mark",0)]

print list(itertools.groupby(L, operator.itemgetter(1)).next()[1])

# [('tearing', 3), ('me', 3), ('apart', 3), ('lisa', 3)]

但事实上,没必要提醒我那部电影。在

相关问题 更多 >

    热门问题