根据元组填充列表中的元素选择某些元组

Selecting certain tuple based on elements in a tuple filled list

我正在用 NLTK 做一些 NLP,我有一个 Counter() 序列,例如

x = [(('DT', 'NN'), 59), (('NN', '.'), 50)]

搜索后我应该得到一个包含满足上述要求的所有元组的列表。

y = [(('DT', 'NN'), 59)]

我的问题是,我如何才能高效地 select 所有具有 'DT' 作为内部元组第一个元素的元素,而不用 O(n) 时间,以最 pythony 的方式?

正如 metatoaster 在他的评论中所阐述的那样,你可能会。必须重组您的数据以按照您想要的方式执行操作(没有 O(n))。

也就是说,在当前状态下并参考您的示例,您可以这样做:

y = [t for t in x if t[0][0] == 'DT']