我尝试生成的代码是一个允许用户输入搜索词的程序,然后打印出匹配的搜索。上下文是列表中的列表。这些子列表是句子和作者。
myList = [["Hello my name is Liam", "John Doe"], ["Hello my name is Jeff", "Jane Doe"]]
search = input("search: ")
for i in myList:
for j in i:
if search in j.lower():
print('"{}"'.format(i[0]))
print("--{}".format(i[1]))
搜索工作正常,但我想要做的是,当搜索运行时,它只搜索句子中的匹配,而不是作者。因此,如果我搜索"John"
,则不会出现任何内容,因为作者索引中的内容不是句子索引。
我尝试使用
for j in i[0]:
但它没有用。
答案 0 :(得分:2)
不要遍历每个子列表,只需检查索引0
中的列表:
search = input("search: ")
for i in myList:
if search in i[0].lower():
print('"{}"'.format(i[0]))
print("--{}".format(i[1]))
答案 1 :(得分:1)
试一试! enumerate()在大多数列表/数组情况下都可以创建奇迹。
myList = [["Hello my name is Liam", "John Doe"], ["Hello my name is Jeff", "Jane Doe"]]
search = input("search: ")
for i in myList:
for index, j in enumerate(i):
if index > 0:
continue
if search.lower() in j.lower():
print('"{}"'.format(i[0]))
print("--{}".format(i[1]))
不要忘记小写搜索字符串,因此它不区分大小写。在这种情况下考虑内部数组的连音符。我几乎没有找到使用它们的理由+在我使用的大多数语言中都不可用,但如果你需要你所呈现的结构,那就合适了。