如何使搜索功能案例不敏感|蟒蛇

时间:2017-11-12 16:59:40

标签: python case-insensitive

简介:我一直在继续关注编程教科书(特别是Python),以及最新的问题'解决,创建一个电话号码查询'。

简介:教科书要求用户创建两个并行阵列(7个朋友的姓名和电话号码)和一个搜索功能,该功能会逐步完成人员阵列并返回两个搜索结果(根据用户输入)的朋友姓名和相应的电话号码(注意:姓名和相应的电话号码使用相同的索引位置。

问题:我有defarraysAndSearch模块(包含我的peoplephoneNumbers array)并已使用enumerate(),以便于循环people数组和公司。自动计数器。该程序正在运行,因为它返回phoneNumbers数组中人员和相应索引ID的完整和部分匹配,但是已经 试图调整我的代码的问题,以便观察到不敏感的情况。

E.g。寻找凯蒂'从people数组返回两个预期值,并从phoneNumbers返回相应的索引ID。搜索' katie',不会返回任何结果,我只是收到错误消息,编码为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("****************************")

是否有人能够就如何整合案例敏感性提供一些指导?

1 个答案:

答案 0 :(得分:0)

实现此目的的一种简单方法是确保输入和搜索字符串在相同的情况下(例如两者都是小写):

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