【发布时间】:2020-03-25 11:04:21
【问题描述】:
# Get version stack ID
for key in all_version_stacks.keys():
if "040_ALY_040_HROTERRORBLADE_prev" in key: # Search for the filename with substring in Version Stack
print('Found the Version Stack Name: ', key)
version_stack_upl_id = all_version_stacks.get(key)
print('Version Stack ID: ', version_stack_upl_id)
else:
print('Version Stack not found')
我的问题是我不想得到以下结果:
Version Stack not found
Version Stack not found
Version Stack not found
Version Stack not found
我想知道它是否存在,如果存在我想获取密钥。
version_stack_upl_id = all_version_stacks.get(key)
如果不是,我只想得到一个 false 或一个变量返回。 但是由于我需要上面的 for 循环,所以我总是为每个键获得打印或返回。我无法解决这个问题。
我还在学习,所以我希望你们中的某个人能给我一些关于如何解决这个问题的明智建议。
不管我如何尝试,我总是最终使用 for 循环进行搜索,因为我想使用 子字符串进行搜索,因为我不想搜索完整的键.
def search(target_dict, searchFor):
for version_stack_name in target_dict:
searchFor not in version_stack_name
【问题讨论】:
-
设置你在循环后测试的标志
-
设置标志是什么意思?
-
这不是很好的做法,但是您可以使用 try:except 块并传入异常,并且您根本不需要遍历字典 - 没关系,需要迭代,但我认为 try:except 是前进的方向
-
设置一个标志 - 定义一个变量,例如Failed=True 如果在循环期间你得到一个命中,将 Failed 设置为 False,然后当循环结束时,如果
Failed仍然为 True,你可以打印一条消息
标签: python dictionary for-loop substring