首页 > 解决方案 > Python:在列表列表中查找名称

问题描述

所以,我必须在列表中搜索一个名字,并且代码必须给我所有具有该名字的联系人。例如:我的代码是:

def find_contacts(contacts = [['Bruno Jr', '@brunojr'], ['Brunosvaldo Kean', 'brunosvaldo_kean']], name = 'Bruno'):
    for list in contacts:
        if name in list:
            print(name)

输出应该是 [['Bruno Jr'],[Brunosvaldo Kean]] 但我什么也没得到,我真的不知道为什么 Python 不给我名字。有人请帮我理解错误。

标签: pythonstringlist

解决方案


首先,你不应该将你的变量命名为“list”——它是 python 内置的。尽管如此 - 代码几乎没问题,但您的 if 条件将不起作用,因为您没有确切的名称“布鲁诺”作为列表元素。您所做的是检查 'Bruno' 是否在 ['Bruno Jr', '@brunojr'] 中 - 要快速修复它,您可能应该在名称字符串的第一个 elem 中搜索:

def find_contacts(contacts = [['Bruno Jr', '@brunojr'], ['Brunosvaldo Kean', 'brunosvaldo_kean']], name = 'Bruno'):
    for person_list_data in contacts:
        if name in person_list_data[0]:
            print(name)

但是,请注意超出范围的错误。


推荐阅读