簡體   English   中英

檢查單詞是否在元組列表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM