[英]Check if word is inside of list of tuples
我想知道如何有效地檢查一個值是否在給定的元組列表中。 說我有一個清單:
("the", 1)
("check", 1)
("brown, 2)
("gary", 5)
如何檢查給定單詞是否在列表中,忽略元組的第二個值? 如果這只是我可以使用的一個詞
if "the" in wordlist:
#...
但是這不起作用,我能做些什么嗎?
if ("the", _) in wordlist:
#...
可以使用哈希
>>> word in dict(list_of_tuples)
使用任何 :
if any(word[0] == 'the' for word in wordlist):
# do something
for tupl in wordlist:
if 'the' in tupl:
# ...
查找列表中的單詞將是O(n)時間復雜度,因此列表中的單詞越多,查找速度越慢。 為了加快速度,您可以按字母順序對列表進行排序,然后使用二進制搜索 - 搜索單詞變為log(N)復雜度,但最有效的方法是使用散列與設置結構:
'the' in set((word for word, _ in a))
O(1),與集合中的單詞數無關。 順便說一句,它保證了單詞中只有一個實例在結構中,而list可以保存盡可能多的“the”。 Set應該構造一次,用.add方法添加單詞(添加新單詞也是O(1)復雜度)
words,scores = zip(*wordlist)
將單詞列表拆分為單詞列表和分數列表
print "the" in words
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.