我有一个列表列表,其中列表中的每个项目都是引用,并且有作者。以Taks为例,列表如下:
[ ['The baby\'s blood type? Human, mostly.' , 'Orson Scott Card']....]
我正在尝试创建一个搜索程序,以便用户可以输入一个单词,它将在列表中搜索并找到字母串(以便bab将导致显示示例),以及然后与作者一起显示完整的引用(带格式)。
答案 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命令后添加一个中断。