在列表列表中找不到值

TDN*_*DNS 2 python loops list python-2.7

我有两个清单.第一个是a_list,就像这样:

a_list = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

第二个是b_list,它是一个包含列表的列表.就像这样:

b_list = [['a',1,'b'],['c',2,'g'],['e',3,'5']
Run Code Online (Sandbox Code Playgroud)

我要做的是a_list用来找到正确的b_list并打印value[2]出来b_list.

我的代码看起来像:

for a in a_list:
    for b in b_list:
        if b[1] == a:
            print b[2]
Run Code Online (Sandbox Code Playgroud)

实际上a_list有136个值.真实的b_list有315个列表.

我最初编写代码来索引b项并从b_listif中删除它b[1] == a.

我已经把代码拿出来解决真正的问题.

Mar*_*ers 5

没有必要循环a_list; 一个简单的in测试就足够了:

for b in b_list:
    if b[1] in a_list:
        print b[2]
Run Code Online (Sandbox Code Playgroud)

如果你制作a_list了一套,这会表现得更好:

a_set = set(a_list)

for b in b_list:
    if b[1] in a_set:
        print b[2]
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,此代码打印:

b
g
5
Run Code Online (Sandbox Code Playgroud)

为您的示例数据.