匹配词典中的单词

2024-05-13 06:03:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本这样的字典:

dictionary = {u'12.75': u' over ', u'2214.23': u' content ', u'2225.86': u' voor ', u'7.17': u' vraag ', u'11.01': u' bedrijf ', u'2228.27': u' wordt ', u'12.0': u' ik ', u'12.6': u' meer ', u'2223.29': u' ik ', u'6.9': u' paar ', u'17.22': u' binnen ', u'2216.86': u' solide ', u'23.67': u' ja ', u'12.09': u' dan ', u'2212.9': u' jij ', u'21.59': u' ja ', u'20.64': u' opleiding ', u'14.46': u' onderzoek ', u'0.54': u' nou ', u'2224.31': u' genoeg ', u'2223.98': u' ik ', u'2227.99': u' voor ', u'2225.03': u' dat ', u'3.18': u' heel ', u'2216.59': u' lukte ', u'2215.93': u' verder ', u'17.37': u' het ', u'2213.04': u' jij ', u'2226.13': u' is ', u'1.76': u' was ', u'11.66': u' maar ', u'2221.22': u' denk ', u'3.02': u' ben ', u'2216.42': u' dat ', u'12.43': u' iets ', u'11.84': u' ga ', u'2215.82': u' dat ', u'4.68': u' zelf ', u'2220.65': u' dat ', u'2.45': u' lekker ', u'2219.08': u' gekapt ', u'2215.73': u' om ', u'11.77': u' daar ', u'13.83': u' ik ', u'18.03': u' founder ', u'22.91': u' een ', u'14.91': u' ben ', u'5.27': u' koken ', u'2226.53': u' je ', u'2218.8': u' mijn ', u'22.19': u' ik ', u'2214.64': u' wordt ', u'14.18': u' van ', u'2226.59': u' hebt ', u'3.83': u' ik ', u'2224.61': u' ik ', u'20.25': u' zelf ', u'2227.1': u' alles ', u'16.89': u' functie ', u'2216.27': u' gaan ', u'9.81': u' eerst ', u'4.46': u' speel ', u'2221.49': u' was ', u'22.64': u' ik ', u'2224.73': u' zeg ', u'2.68': u' mee ', u'0.99': u' hele ', u'0.8': u' mijn ', u'19.2': u' klopt ', u'2.88': u' en ', u'3.59': u' pak ', u'10.08': u' over ', u'14.37': u' het ', u'13.9': u' zelf ', u'2226.38': u' en ', u'21.09': u' gedaan ', u'22.76': u' zo ', u'2215.2': u' ook ', u'2220.91': u' dat ', u'2213.5': u' alles ', u'2220.12': u' dus ', u'2221.1': u' is ', u'2221.4': u' ik ', u'17.43': u' bedrijf ', u'2220.4': u' wat ', u'2221.62': u' moeilijk ', u'2228.15': u' mij ', u'4.26': u' ik ', u'2224.13': u' weet ', u'13.67': u' wat ', u'22.49': u' of ', u'11.34': u' zelf ', u'2215.37': u' geprobeerd ', u'7.72': u' is ', u'1.23': u' jeugd ', u'2216.18': u' te '}

现在我给这本字典排序,称之为排序字典:

sorted_dictionary = [(u'0.54', u' nou '), (u'0.8', u' mijn '), (u'0.99', u' hele '), (u'1.23', u' jeugd '), (u'1.76', u' was '), (u'10.08', u' over '), (u'11.01', u' bedrijf '), (u'11.34', u' zelf '), (u'11.66', u' maar '), (u'11.77', u' daar '), (u'11.84', u' ga '), (u'12.0', u' ik '), (u'12.09', u' dan '), (u'12.43', u' iets '), (u'12.6', u' meer '), (u'12.75', u' over '), (u'13.67', u' wat '), (u'13.83', u' ik '), (u'13.9', u' zelf '), (u'14.18', u' van '), (u'14.37', u' het '), (u'14.46', u' onderzoek '), (u'14.91', u' ben '), (u'16.89', u' functie '), (u'17.22', u' binnen '), (u'17.37', u' het '), (u'17.43', u' bedrijf '), (u'18.03', u' founder '), (u'19.2', u' klopt '), (u'2.45', u' lekker '), (u'2.68', u' mee '), (u'2.88', u' en '), (u'20.25', u' zelf '), (u'20.64', u' opleiding '), (u'21.09', u' gedaan '), (u'21.59', u' ja '), (u'22.19', u' ik '), (u'22.49', u' of '), (u'22.64', u' ik '), (u'22.76', u' zo '), (u'22.91', u' een '), (u'2212.9', u' jij '), (u'2213.04', u' jij '), (u'2213.5', u' alles '), (u'2214.23', u' content '), (u'2214.64', u' wordt '), (u'2215.2', u' ook '), (u'2215.37', u' geprobeerd '), (u'2215.73', u' om '), (u'2215.82', u' dat '), (u'2215.93', u' verder '), (u'2216.18', u' te '), (u'2216.27', u' gaan '), (u'2216.42', u' dat '), (u'2216.59', u' lukte '), (u'2216.86', u' solide '), (u'2218.8', u' mijn '), (u'2219.08', u' gekapt '), (u'2220.12', u' dus '), (u'2220.4', u' wat '), (u'2220.65', u' dat '), (u'2220.91', u' dat '), (u'2221.1', u' is '), (u'2221.22', u' denk '), (u'2221.4', u' ik '), (u'2221.49', u' was '), (u'2221.62', u' moeilijk '), (u'2223.29', u' ik '), (u'2223.98', u' ik '), (u'2224.13', u' weet '), (u'2224.31', u' genoeg '), (u'2224.61', u' ik '), (u'2224.73', u' zeg '), (u'2225.03', u' dat '), (u'2225.86', u' voor '), (u'2226.13', u' is '), (u'2226.38', u' en '), (u'2226.53', u' je '), (u'2226.59', u' hebt '), (u'2227.1', u' alles '), (u'2227.99', u' voor '), (u'2228.15', u' mij '), (u'2228.27', u' wordt '), (u'23.67', u' ja '), (u'3.02', u' ben '), (u'3.18', u' heel '), (u'3.59', u' pak '), (u'3.83', u' ik '), (u'4.26', u' ik '), (u'4.46', u' speel '), (u'4.68', u' zelf '), (u'5.27', u' koken '), (u'6.9', u' paar '), (u'7.17', u' vraag '), (u'7.72', u' is '), (u'9.81', u' eerst ')]

我现在想做的是在新词典中循环查找是否有触发词。然而,如果我取一个明显在字典里的单词(fe'now'),我会这样做:

hit = 'nou'

for element in sorted_dictionary:
    element_final = element[1].encode('ascii','ignore')
    print element_final
    if element_final == hit:
        print "succes"

我没有找到任何线索。。。奇怪的是它们都是:

<type 'str'>

你觉得这里出了什么问题吗? 谢谢您!你知道吗


Tags: 字典iselementikdatoverbenwas
3条回答

您需要strip()值周围的空白。你知道吗

for key, value in sorted_dictionary:
    if value.strip() == hit:
        print("success")

顺便说一下,更好的方法是:

if hit in [v.strip() for v in dictionary.values()]:
    print("success")

在元组列表中的“触发词”周围有前导/尾随空格。使用以下选项:

sorted_dictionary = [(u'0.54', u' nou '), (u'0.8', u' mijn '), (u'0.99', u' hele '), (u'1.23', u' jeugd '), (u'1.76', u' was '), (u'10.08', u' over '), (u'11.01', u' bedrijf '), (u'11.34', u' zelf '), (u'11.66', u' maar '), (u'11.77', u' daar '), (u'11.84', u' ga '), (u'12.0', u' ik '), (u'12.09', u' dan '), (u'12.43', u' iets '), (u'12.6', u' meer '), (u'12.75', u' over '), (u'13.67', u' wat '), (u'13.83', u' ik '), (u'13.9', u' zelf '), (u'14.18', u' van '), (u'14.37', u' het '), (u'14.46', u' onderzoek '), (u'14.91', u' ben '), (u'16.89', u' functie '), (u'17.22', u' binnen '), (u'17.37', u' het '), (u'17.43', u' bedrijf '), (u'18.03', u' founder '), (u'19.2', u' klopt '), (u'2.45', u' lekker '), (u'2.68', u' mee '), (u'2.88', u' en '), (u'20.25', u' zelf '), (u'20.64', u' opleiding '), (u'21.09', u' gedaan '), (u'21.59', u' ja '), (u'22.19', u' ik '), (u'22.49', u' of '), (u'22.64', u' ik '), (u'22.76', u' zo '), (u'22.91', u' een '), (u'2212.9', u' jij '), (u'2213.04', u' jij '), (u'2213.5', u' alles '), (u'2214.23', u' content '), (u'2214.64', u' wordt '), (u'2215.2', u' ook '), (u'2215.37', u' geprobeerd '), (u'2215.73', u' om '), (u'2215.82', u' dat '), (u'2215.93', u' verder '), (u'2216.18', u' te '), (u'2216.27', u' gaan '), (u'2216.42', u' dat '), (u'2216.59', u' lukte '), (u'2216.86', u' solide '), (u'2218.8', u' mijn '), (u'2219.08', u' gekapt '), (u'2220.12', u' dus '), (u'2220.4', u' wat '), (u'2220.65', u' dat '), (u'2220.91', u' dat '), (u'2221.1', u' is '), (u'2221.22', u' denk '), (u'2221.4', u' ik '), (u'2221.49', u' was '), (u'2221.62', u' moeilijk '), (u'2223.29', u' ik '), (u'2223.98', u' ik '), (u'2224.13', u' weet '), (u'2224.31', u' genoeg '), (u'2224.61', u' ik '), (u'2224.73', u' zeg '), (u'2225.03', u' dat '), (u'2225.86', u' voor '), (u'2226.13', u' is '), (u'2226.38', u' en '), (u'2226.53', u' je '), (u'2226.59', u' hebt '), (u'2227.1', u' alles '), (u'2227.99', u' voor '), (u'2228.15', u' mij '), (u'2228.27', u' wordt '), (u'23.67', u' ja '), (u'3.02', u' ben '), (u'3.18', u' heel '), (u'3.59', u' pak '), (u'3.83', u' ik '), (u'4.26', u' ik '), (u'4.46', u' speel '), (u'4.68', u' zelf '), (u'5.27', u' koken '), (u'6.9', u' paar '), (u'7.17', u' vraag '), (u'7.72', u' is '), (u'9.81', u' eerst ')]
hit = 'nou'

for element in sorted_dictionary:
    element_final = element[1].strip()
    if element_final == hit:
        print(element, "succes")

输出:

('0.54', ' nou ') succes

您可以用另一种方法检查单词是否在dict值中:

if hit in dict(sorted_dictionary).values()
    print("success")

还有collections.OrderedDict类,它使您能够从2值元组的排序列表中创建排序的dict。你知道吗

相关问题 更多 >