【问题标题】:Matching a single element to an element dictionary key/value pair where the values are lists themselves将单个元素与元素字典键/值对匹配,其中值是列表本身
【发布时间】:2019-05-08 06:16:37
【问题描述】:

我制作了一个字典,其中的键是英文字母表的小写字母,每个键的对应值是以该字母开头的单词列表。列表包含大写和小写的单词。

例如:myDict= {'a':['Apple','all','always','allow','Adam',....], 'b': ['base', '比尔','球',....],...

然后我从一个单独的文本文件中读取并检查文本文件中的每个单词是否存在于我的字典中,然后如果不将该单词存储到另一个列表中。

我现在正在做的是检查我要比较的单词的第一个字母(小写)是否是我字典中的键。然后我想检查该键的值列表中的整个单词。

我知道我可以检查字典中的所有值,但是如果我检查字典中的所有值以查找该单词,我真的不明白拥有字典的意义何在。

我想知道处理此类案件最好/最有效的方法是什么?

我对 python 很陌生,所以如果我完全错过了一些东西,请原谅。我觉得使用字典并检查所有值与使用列表没有什么不同?

【问题讨论】:

    标签: python dictionary lookup


    【解决方案1】:

    一般来说,最好发布您的实际代码,而不是对您的代码外观的描述。

    myDict= {'a':['Apple','all','always','allow','Adam',....], 'b': ['base','Bill','ball',....]
    

    我不知道这是否是最好的方式,但这是一种方式:

    for word in example_file:
        first_letter = word[0].lower()
        if first_letter in myDict and word in myDict[first_letter]:
            print("{} found in myDict!".format(word))
    

    避免区分大小写:

    for word in example_file:
        first_letter = word[0].lower()
        if first_letter in myDict and word.lower() in [x.lower() for x in myDict[first_letter]:
            print("{} found in myDict!".format(word))
    

    取决于您的搜索类型

    【讨论】:

    • 感谢 Andrew 的超快速响应。我的目标是查找在我的字典中找不到的单词,但下次我将添加代码,但它基本上只是一行打开文件并从文件中的单词制作列表。我现在的新问题是如何处理首字母为特殊字符或数字的情况。我想我将不得不尝试如何操作字符串以删除单词末尾的句点或数字或特殊字符等内容。另外 PS 我的帐户太新了,它不会显示我对您的回答的支持。
    猜你喜欢
    • 2019-02-24
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2019-08-20
    • 2017-04-25
    • 1970-01-01
    • 2020-07-31
    • 2018-04-15
    相关资源
    最近更新 更多