gpt4 book ai didi

Python 在字典中搜索键时只使用字符串中的第一个字母

转载 作者:行者123 更新时间:2023-11-28 22:46:08 26 4
gpt4 key购买 nike

这里是 Python 初学者。尝试在字典中搜索字符串时遇到问题。

我正在编写的程序使用 xlrd 将 excel 电子表格 (S2name) 中的数据与字典键匹配,然后返回分配给该键的值。这是为了将质量控制测试与化学数据相匹配。

字典大概是这样的:


dQC = {'4266152-001': 'METHOD_BLANK',
'4266152-002': 'LCS',
'4266152-004': 'LAB_DUPLICATE',

等..


除了搜索函数从字典返回错误结果这一事实外,我的代码可以正常工作。

我已将问题隔离到以下 v 变量:


S2name = (sheet2.cell_value(row_index, 0))

for key, value in dQC.items():
def search(dic, lookup):
for v in key:
print("This should be the key in dQC, not the number %s" % v)
if v in lookup:
return v # I would obviously return value here, but it returns the wrong one.
else:
return False

QCtype = (search(dQC, S2name))

print(QCtype)

结果:

This should be the key in dQC, not the number 4
4

出于某种原因,v 仅搜索字符串中的第一个数字(即:4)而不是整个字符串(即:4266152-001),因此当我使用 QCtype 调用该值时,它会返回错误的数字.我希望 v 在迭代搜索时使用前 10 个字符,而不是先使用 he。

请注意,在脚本中,我返回 v 只是为了检查它。否则我会返回值。

编辑:

如果我链接到我使用其中一些代码的线程,也许会更清楚。

我假设这会搜索字典键中的整个单词,而不是键中的单个字母,这对我来说现在很有意义。

How to search if dictionary value contains certain string with Python

最佳答案

您正在定义许多名为 search 的函数,每个函数都相互抹杀,最后只调用您碰巧定义的最后一个函数。在循环中使用 def 语句是不常见的,使用 def 但不在循环的每一段调用/使用该函数肯定是错误的。

此外,for v in key:,其中key是一个字符串,赋值给v,依次将每个键中的>字符

很难准确理解您认为自己在做什么,但我想您只想定义一次 search,然后可能会在循环中调用 .也许是这样的:

def search(dic, lookup, valur):   
return lookup.get(key, value)

for key, value in dQC.items():
QCtype = search(dQC, S2name)
print(QCtype)

...?

关于Python 在字典中搜索键时只使用字符串中的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27792094/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com