在键/值对列表中查找值

and*_*oob 1 python list

我有2个清单

old_name_list = [a-1234, a-1235, a-1236]
new_name_list = [(a-1235, a-5321), (a-1236, a-6321), (a-1234, a-4321), ... ]
Run Code Online (Sandbox Code Playgroud)

我想以递归方式搜索old_name_list中的元素是否存在于new_name_list中,并返回与之关联的值,例如.old_name_list中的第一个元素返回a-4321,第二个元素返回a-5321,依此类推,直到old_name_list结束.

我尝试过以下内容并不起作用

for old_name, new_name in zip(old_name_list, new_name_list):
    if old_name in new_name[0]:
        print new_name[1]
Run Code Online (Sandbox Code Playgroud)

方法我做错了还是我必须对它做一些小改动?先感谢您.

ste*_*eha 7

dict()根据您的第二个列表构建一个,并在其中查找.

old_name_list = ["a-1234", "a-1235", "a-1236"]
new_name_list = [("a-1235", "a-5321"), ("a-1236", "a-6321"), ("a-1234", "a-4321") ]

d = dict(new_name_list)

for n in old_name_list:
    print d[n]
Run Code Online (Sandbox Code Playgroud)

你需要在诸如"a-1234"之类的字符串周围加上引号.