如何使搜索功能不区分大小写 | Python

How to make a search function case in-sensitive | Python

简介:一直在继续看一本编程教材(Python,具体来说),用最新的'problem'来解决,算是创建 'Phone Number Look-up'.

简介:教科书要求用户创建两个并行数组(7 个朋友的名字和 phone 号码)和一个遍历人物数组的搜索功能returns 朋友姓名和相应 phone 号码的搜索结果(基于用户输入)(注意:姓名和相应 phone 号码使用相同的索引职位。

问题: 我有 def 一个 arraysAndSearch 模块(有我的 peoplephoneNumbers array) 并使用 enumerate() 以便于遍历 people 数组和 inc。自动计数器该程序正在运行,因为它返回 phoneNumbers 数组中的人和相应索引 ID 的完全匹配和部分匹配,howeverhave 尝试调整我的代码时出现问题,因此观察到大小写不敏感。

例如搜索 'Katie' returns 来自 people 数组的两个预期值和来自 phoneNumbers 的相应索引 ID。搜索 'katie'、returns 没有结果,我只是得到我的错误消息,它被编码为出现 if not arraySearch:

代码摘录:

def arraysAndSearch(nameSearch):
    people = ['Silviu Ciocanel', 'Katie Trolan', 'Katie MacPherson']
    phoneNumbers = ['310-443-7798', '562-905-3343', '310-983-5209']
    arraySearch = [people for people in enumerate(people) if nameSearch in people[1]]
    for index, nameSearch in arraySearch:
        print("Name: ", nameSearch, "\nPhone:", phoneNumbers[index])
    if not arraySearch:
        print("No matches in phone book :(")
    print("****************************")

有没有人能就如何集成不区分大小写提供一些指导?

实现此目的的一种简单方法是确保输入字符串和搜索字符串的大小写相同(例如,均为小写):

arraySearch = [people for people in enumerate(people) if nameSearch.lower() in people[1].lower()]