首页 > 解决方案 > Python - 如何找到部分字符串出现?

问题描述

我正在搜索这样的列表...

srchList = [ ['Gloucestershire', 'Tewkesbury', '324225'], ['Gloucestershire', 'Tirley', '353925'], ['Gloucestershire', 'Westbury Court Garden', '354153'], ['Gloucestershire', 'Westonbirt', '354163'], ['Gloucestershire', 'Winchcombe', '354244'], ['Gloucestershire', 'Withington, '354270'], ['Gloucestershire', 'Woodchester Park (Nt)', '354288'], ['Gloucestershire', 'Wotton', '354320'], ['Greater London', 'Tennis Club Wimbledon', '324383'], ['Greater London', 'Arsenal F.C.', '350150'], ['Greater London', 'Barking', '324164'], ['Greater London', 'Barnet', '324151'], 
['Greater London', 'Beckton', '350286'], ['Greater London', 'Bexley', '350413'] ]

为了选择伦敦的,我必须输入“大伦敦”

我已经回避了大写的问题,.upper()但是如果我只输入部分字符串,例如"london"or ,我怎么能获得成功"Gloucester"

这是我当前的代码...

result = [region for region in srchList if region[0].upper() == search_item.upper()]
if result == []:
    print("Search item not found")
else:
    print(result)

标签: pythonpython-3.xlistsearch

解决方案


试试这个(它使用in运算符检查您搜索的内容是否在列表中的任何区域中的任何位置)

result = [region for region in srchList if search_item.upper() in region[0].upper()]
if result == []:
    print("Search item not found")
else:
    print(result)

推荐阅读