我想从str中找到dict中的所有元素
我试着写代码,但效果不好。你知道吗
我考虑使用递归函数。你知道吗
str = "xx111xxx200x222x"
nums = {"one hundreds": ["100","111"], "two hundreds": ["200", "222"]}
result = []
def allfind(data):
for key in nums.keys():
for num in nums[key]:
index = data.find(num)
if index > -1:
result.append(key)
return allfind(data[index+len(num):])
allfind("xx111xxx200x222x")
print result # return ["two hundreds", "two hundreds"]
# I want to get ["one hundreds", "two hundreds", "two hundreds"]
我会将字典转换为将所有值作为键,并将键作为相应的值,使用RegEx suggested by Grijesh Chauhan,获得值将像这样简单
你可以这样做(阅读评论):
注意,在外循环中,您正在迭代以下内容:
你得到错误答案的原因是因为nums是一本字典,而且是无序的,所以
因此,你有两个几百作为你的第一个结果,然后当你这样做
它返回字符串x222x,当然它只有“两百”(222),所以最终结果变成
解决方案,我认为您可以在知道错误后执行,应该在您以正确的顺序迭代nums键时出现。(思考清单)。你知道吗
另外,尽可能地放置简单的print语句以便于调试。你知道吗
相关问题 更多 >
编程相关推荐