如何在列表中查找单词并从该单词向后搜索?

时间:2016-08-17 18:25:14

标签: python list

如何搜索列表中的特定单词?一旦我搜索了那个特定的单词,我怎么能从那里向后搜索?在我的例子中,我需要搜索城市,然后向后搜索以找到街道类型(例如:Rd,St,Ave等)

我首先允许用户输入地址,例如 123 Fakeville St SW旧金山CA 90215

searchWord = 'San Francisco'
searchWord = searchWord.upper()
address = raw_input("Type an address: ").upper()

输入地址后,我会使用address = address.split()拆分它,结果是:

['123', 'Fakeville', 'St', 'SW', 'San Francisco', 'CA', '90215']

然后我在列表中搜索城市:

for items in address:
   if searchWord in items:
      print searchWord

但我不确定如何倒数以找到街道类型(例如:St)。

2 个答案:

答案 0 :(得分:0)

for items in address:
    if searchWord in items:
        for each in reversed(address[0:address.index(searchWord)]):
            if each == 'St':
                print each

找到城市后,使用反向

反向遍历列表

答案 1 :(得分:0)

您可以使用list.index方法搜索列表中项目的索引。

没有list.rindex方法可以向后搜索。 你需要使用:

rev_idx = len(my_list) - my_list[::-1].index(item) - 1

我真的不明白你的目标是什么,我可以解释如何向后搜索" St" 地址字符串列表中的字符串:

address = ['123', 'Fakeville', 'St', 'SW', 'San Francisco', 'CA', '90215']

town_idx = address.index('San Francisco')
print(town_idx)
# You'll get: 4

before = address[:town_idx]
st_index = len(before) - before[::-1].index("St") - 1
print(st_index)
# You'll get: 2