python - 无法将“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
解决方案
要将用户输入拆分为字段,请使用 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]:
推荐阅读
- django - Django REST Framework 更改基于响应的 rederer 类
- python - 根据两种不同的条件突出显示 pandas 数据框列
- javascript - js.js:14 未捕获的类型错误:无法读取 null 的属性“样式”
- javascript - 使用双参数重新加载页面时应用程序崩溃
- c# - 在场景中注入游戏对象
- ios - 过期文本字段中的卡片
- c - SIGCONT 可以唤醒休眠的进程吗?
- python - MLeap 问题:无法用 Pyspark 反序列化使用 Scikit-Learn 编写的包。错误:找不到 bundle.json
- python - 如何解决这个问题:TypeError:期望期货列表,而不是任务
- android - android-launch 外部浏览器并使用返回按钮返回应用程序