我想将一个字符串转换为列表

时间:2016-02-08 06:33:15

标签: python

我给的是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)

3 个答案:

答案 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未找到