如何通过搜索特定关键字在列表中打印列表?

时间:2016-12-13 21:48:50

标签: python list

我想编写一个python函数,它将通过搜索特定关键字打印列表中的列表。这是我的功能,但它不起作用。

user_adresses = [["John","Walker","New York","10001"],["Larry","Smith","Denver","80123"]]

def search(user_adresses):

    alpha = str(input("What are you searching for? "))


    for item in user_adresses:

        print(str(item[0:])[1:-1])

程序会问我要搜索的是什么,如果我输入“John”,它应该只用John打印列表 - > “约翰”,“沃克”,“纽约”,“10001”

但是通过这种方式我会打印出所有列表。什么应该添加到函数中才能打印出包含特定关键字的列表?

谢谢

4 个答案:

答案 0 :(得分:1)

您可以使用in检查列表中的成员资格。这将匹配用户地址中的任何和所有完整单词。

for user in user_adresses:
    if alpha in user:
        print(user)

答案 1 :(得分:1)

user_adresses = [["John","Walker","New York","10001"],["Larry","Smith","Denver","80123"]]

def search(user_adresses):
    alpha = str(input("What are you searching for? "))

    for item in user_adresses:
        if alpha in item:
            print(item)

使用in运算符检查输入是否在给定项目中

答案 2 :(得分:0)

你可以非常简洁地表达这一点:

for match in (address in user_addresses if alpha in address):
    print(match)

这将打印每场比赛,其中匹配'是任何地址'如果user_addresses中出现alpha这一术语,则address。{/ 1>

答案 3 :(得分:0)

这种代码的和平应该有效。 考虑使用字典而不是列表。

def search(user_addresses):
    alpha = input("What are you searching for? ")
    for user_address in user_addresses:
        if alpha in user_address:
            print(user_address)