【发布时间】:2021-06-03 04:32:38
【问题描述】:
我正在用 NLTK 做一些 NLP,并且我有一个 Counter() 序列,例如
x = [(('DT', 'NN'), 59), (('NN', '.'), 50)]
搜索后,我应该得到一个包含上述要求的所有元组的列表。
y = [(('DT', 'NN'), 59)]
我的问题是,如何以最 Python 的方式有效地选择所有具有 'DT' 作为内部元组的第一个元素的元素,而不需要 O(n) 时间?
【问题讨论】:
-
当前数据结构不可能,除非您将该列表重新映射到一个映射,使得 2 元组键的第一个元素成为键,并与第二个元素形成一个新的 2 元组2元组键和计数并将其附加到列表中。这将是一个单一的 O(n) 操作,但从该新结构中得到的查找将具有从
dict查找数据的标准时间复杂度。