【问题标题】:Python How to find a specific string from a list and print that line out?Python 如何从列表中查找特定字符串并打印出该行?
【发布时间】:2021-12-06 20:56:05
【问题描述】:

我有一个列表,在该列表中,我试图通过要求用户输入一个单词来找到该列表中的特定字符串,然后我将打印该单词及其所在的行

这是一个列表

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!")

【问题讨论】:

  • 有兴趣使用 Pandas 吗?
  • 请注意,list 是 Python 中内置函数的名称,您可以通过将其用作变量名称来覆盖它。

标签: python string list extract


【解决方案1】:

由于以下原因,它不起作用:-

  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!")

【讨论】:

    【解决方案2】:
    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);
    

    这不是 null 安全的

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

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-04
      相关资源
      最近更新 更多