【发布时间】:2013-02-20 12:00:48
【问题描述】:
我有两个列表。第一个是a_list,是这样的:
a_list = [1,2,3]
第二个是b_list,它是一个包含列表的列表。是这样的:
b_list = [['a',1,'b'],['c',2,'g'],['e',3,'5']
我要做的是使用a_list 找到正确的b_list 并在b_list 中打印value[2]。
我的代码如下:
for a in a_list:
for b in b_list:
if b[1] == a:
print b[2]
a_list 实际上有 136 个值。而真正的b_list 里面有315个列表。
我最初编写了代码来索引 b 项并将其从 b_list 中删除,如果 b[1] == a。
为了解决真正的问题,我删除了该代码。
【问题讨论】:
-
真正的问题是什么?你没有说明哪里出了问题。
-
"我最初编写了代码来索引
b项目,如果b[1] == a将其从b_list中删除。"一旦你解决了这个问题并尝试恢复该代码,你就会遇到另一个问题。您不能在迭代list时从它中删除元素。但是,如果您查看右侧的相关问题,您会很快找到解决方案。 tl;dr 是:b_list = [b for b in b_list if b[1] in a_list],或对filter的等效调用。
标签: python list python-2.7 loops