如何从列表中找到一个特定的字符串并打印出该行?



我有一个列表在这个列表中,我试图找到一个特定的字符串通过让用户输入一个单词我将打印这个单词和它所在的行

这是一个列表

new_list = ['An American', 'Barack Obama', '4.7', '18979'],
['An Indian', 'Mahatma Gandhi', '4.7', '18979'],
['A Canadian', 'Stephen Harper', '4.6', '19234']

例如,如果我可以输入"ste"它应该将第三行打印为"Stephen Harper">

我试过了,但是没有成功:

find_String = input("Enter a string you're looking for: ")
if find_String in new_list:
print(new_list)
else:
print("String not found!")

它不工作,因为以下原因:-

  1. 变量list只保存一个列表对象,第一个,其余2个不在变量中。
  2. 这不能用一个简单的if语句来完成,因为它必须遍历list变量中的3个列表。

下面的代码可以工作:-

L1 = [['An American', 'Barack Obama', '4.7', '18979'],
['An Indian', 'Mahatma Gandhi', '4.7', '18979'],
['A Canadian', 'Stephen Harper', '4.6', '19234']]
find_String = input("Enter a string you're looking for: ")
for data in L1:
for string in data:
if find_String.lower() in string.lower():
print(data)
exit(0)
else:
print("String not found!")
arr = ['An American', 'Barack Obama', '4.7', '18979', 'An Indian', 'Mahatma Gandhi', '4.7', '18979',
'A Canadian', 'Stephen Harper', '4.6', '19234']
inputStr = input("Enter String: ")
for val in arr:
if inputStr in val:
print(val);

This is not null safe

这也将打印所有具有指定子字符串的值,如果你只想要第一个,在if条件的末尾添加一个break