如何在嵌套列表中查找单词?

时间:2015-04-28 09:12:55

标签: python list search

我有一个列表列表,其中列表中的每个项目都是引用,并且有作者。以Taks为例,列表如下:

[ ['The baby\'s blood type? Human, mostly.' , 'Orson Scott Card']....]

我正在尝试创建一个搜索程序,以便用户可以输入一个单词,它将在列表中搜索并找到字母串(以便bab将导致显示示例),以及然后与作者一起显示完整的引用(带格式)。

2 个答案:

答案 0 :(得分:3)

首先,我建议您使用命名元组来保存引号和作者。

from collections import namedtuple
Quote = namedtuple('Quote', ['body', 'author'])

然后有一个引号列表,你会打印包含' bab'像这样:

for quote in quotes:
    if 'bab' in quote.body:
        print '"{}" - {}'.format(quote.body, quote.author)

答案 1 :(得分:0)

如果您坚持使用当前数据结构,则需要遍历列表,然后使用str.find()检查字符串是否包含预期的单词。

searchQuote = True
searchWord = "bab"
for quote in quotes:
    if searchQuote:
        if quote[0].find(searchWord) > -1:
            print ("{} - {}".format(quote[0],quote[1]))
    else:
        if quote[1].find(searchWord) > -1:
            print ("{} - {}".format(quote[0],quote[1]))

searchQuote只是一个布尔值,您可以根据您是否搜索作者或引用来设置。 如果只需要一个引号而不是所有结果,请在print命令后添加一个中断。