首页 > 解决方案 > 无法将“for key in dict”转换为 == 以进行精确匹配

问题描述

早上好,

我无法从字典中提取正确的值,因为有类似的键。我相信我需要使用 == 而不是in但是当我尝试更改if key in c_item_number_one:if key == c_item_number_one:时只会返回我的if not_found: print("Specify Size One")但是我知道 12" 在字典中。

c_item_number_one = ('12", Pipe,, SA-106 GR. B,, SCH 40, WALL smls'.upper())
print(c_item_number_one)
My formula is as follows:

def item_one_size_one():
    not_found = True
    for key in size_one_dict:
        if key in c_item_number_one:
            item_number_one_size = size_one_dict[key]
            print(item_number_one_size)
            not_found = False
            break
    if not_found:
            print("Specify Size One")
item_one_size_one()

目前的结果是:

12", PIPE,, SA-106 GR. B,, SCH 40, WALL SMLS
Specify Size One

标签: pythondictionaryfor-loopexact-match

解决方案


要将用户输入拆分为字段,请使用 re.split

>>> userin
'12", PIPE,, SA-106 GR. B,, SCH 40, WALL SMLS'
>>> import re
>>> fields = re.split('[ ,]*',userin)
>>> fields
['12"', 'PIPE', 'SA-106', 'GR.', 'B', 'SCH', '40', 'WALL', 'SMLS']

然后将键与第一个字段或所有字段进行比较:

if key == fields[0]:

推荐阅读