python - 在列表列表中查找值时遇到问题

标签 python list python-2.7 loops

我有两个列表。第一个是 a_list ,如下所示:

a_list = [1,2,3]

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

b_list = [['a',1,'b'],['c',2,'g'],['e',3,'5']

我想做的是使用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]

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

我最初编写了代码来索引 b 项,并在 b[1] == a 时将其从 b_list 中删除。

我已经删除了该代码以解决真正的问题。

最佳答案

不需要循环a_list;一个简单的 in 测试就足够了:

for b in b_list:
    if b[1] in a_list:
        print b[2]

如果您将 a_list 设为一组,效果会更好:

a_set = set(a_list)

for b in b_list:
    if b[1] in a_set:
        print b[2]

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

b
g
5

您的示例数据。

关于python - 在列表列表中查找值时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234753/

相关文章:

python - 如何在 python 中删除名字中的中间名首字母?

python - 类型错误 : expected a character buffer object using . 翻译

python - 无法获得合适的直方图

python - Python中双循环中所有字符串的大写

python - 在哪里可以找到 Python 中所有可能的 HTML 标签的列表?

c++ - Rcpp 中 "List"的操作函数 - 类似于 R 中的 "Reduce function"

python - 在Python中绘制列表中的数据

python-2.7 - Python (Win 10) : Installing matplotlib requires packages "freetype" and "png"?

javascript - 使用 NPM install 从文件安装 NodeJS 包

python - 在安装的pygame目录中哪里可以找到pygame.init()方法?