我给的是d='direct'
的字符串
预期o / p =找到直接的匹配
但我得到的比赛没有找到d
匹配未找到i,匹配未找到r等
现在我正在使用代码:
dict1={'d': 'direct', 't': '2', 'g': ['D','D']}
dict2={'d': 'direct', 'u': ['2', '2'], 't': ['2', '2'], 'g': ['D', 'D']}
for key in dict1:
for index, element in enumerate(dict1[key]):
if element in dict2[key]:
print("Match found for", element)
else:
print("Match not found for", element)
答案 0 :(得分:1)
dict1[key]
返回'direct'
。尝试:
for i in 'direct':
print(i)
你会发现它打印: d 一世 [R ....
这就是你的代码正在做的事情:
match not found for d
match not found for i
match not found for r etc
对字符串进行迭代会为您提供单个字符。
将dict1
更改为
dict1={'d': ['direct'], ...}
至少会让你超越第一把钥匙。假设,也就是说,你想在第二个字典中测试'direct'。在dict2
中进行相同的更改。换句话说,要小心混合字符串和列表。有时字符串的行为类似于列表。
同时查看list('direct')
或for i in list('direct'):...
。这可能不是你想要的列出转换的字符串 - 但有时它很有用。
答案 1 :(得分:0)
试试这段代码,
dict1={'d': 'direct', 't': '2', 'g': ['D','D']}
dict2={'d': 'direct', 'u': ['2', '2'], 't': ['2', '2'], 'g': ['D', 'D']}
for key1 in dict1:
for key2 in dict2:
if key1 in key2:
print dict1[key1]
你正在迭代dict1,它比较了各个字符。
答案 2 :(得分:0)
这下面是你想要的吗?
dict1={'d': 'direct', 't': '2', 'g': ['D','D']}
dict2={'d': 'direct', 'u': ['2', '2'], 't': ['2', '2'], 'g': ['D', 'D']}
#for key in dict1:
#print key
for key in dict1:
for index, element in enumerate(dict1[key]):
#print key, index, element
if element in dict2:
print("Element {0} found".format(element))
else:
print("Element {0} not found".format(element))
找到元素d 我找不到元素 找不到元素r 元素e未找到 找不到元素c 元素t找到了 元素D未找到 元素D未找到 元素2未找到