如何检查字符串的一部分是否属于字典的键

时间:2018-03-14 16:17:16

标签: python dictionary

我已将我的dic定义如下:

grocery_dict={"apple":"fruite", "pepper": "veg", "spaghetthi":"pasta", "banana":"fruite", "tomato":"fruite"}

我的列表是grocery_list=["apple","bananas","pizza","pepper"] 我编写了一个代码,允许我比较项目并提供项目的类别。

gl=[] 
for item in grocery_list:
    if item in grocery_dict:
        x=grocery_dict[item]
        gl.append(x)
    else:
        x='other'
        gl.append(x)
print(gl)

接下来,我可以计算每个类别的次数。 现在我的问题是如何将它与词典中存在的单词的一部分进行比较,例如,如果我有“Mexican Pepper”或“tomatto”等项目,以及如何不考虑字符串中的大写字母。

另一个问题:在这种情况下是否可以使用pyspark?

提前谢谢

1 个答案:

答案 0 :(得分:0)

这实际上很少与dicts有关,主要与字符串操作和自然语言处理有关。

wrt /大写和大写/小写,解决方案很简单:只使用所有较低的字符串作为dict中的键,并将.lower()方法应用于列表中的所有字符串,即:

grocery_list = ["apple","bananas","pizza","pepper"]
normalized_list = [word.lower() for word in grocery_list]

处理像“墨西哥胡椒”这样的术语会更难。您当然可以拆分字符串并查找每个部分,但如果您的列表中有“Apple Tomato”之类的内容,则无法判断您是否需要“apple”或“tomato”。处理拼写错误需要像拼写检查程序一样,但在这里你再也无法确定你会得到一个无法保证的明确答案。

作为旁注:您当前的代码可以大大简化:

gl = [grocery_dict.get(name, "other") for name in grocery_list]