【问题标题】:How to check if a string is inside a nested list by checking all the elements and also make the entire nested list lowercase? [duplicate]如何通过检查所有元素以及使整个嵌套列表小写来检查字符串是否在嵌套列表中? [复制]
【发布时间】:2020-08-04 13:43:27
【问题描述】:

每当我尝试输入列表中第一个索引值为 0 的名称字符串(例如 Magnus)时,它会起作用,但是,当我输入具有不同索引值的不同名称时(例如. 托尼)它不起作用。似乎变量“k”仅适用于列表中的第一项。有没有办法让变量“k”在确认是否存在任何匹配项之前检查整个列表?此外,如何将所有列表和字符串设为小写,以便在搜索匹配项时不区分大小写?当我尝试这样做时,它似乎不起作用。

people_list = [['Magnus', 84], ['Tony', 42], ['Alex', 36], ['James', 29], ['Miles', 51], ['Steve', 13], ['Kenneth', 8], ['Valar', 60]]

find = str(input("Please input a name."))
  for k,v in people_list:
    if find == k:
      print("Name:" + str(k),"& Age:" + str(v))
    elif find != k:
      print("A match was not found.")
      break
    break

【问题讨论】:

  • input() 总是返回一个字符串,你不需要str() 围绕它。
  • 当您的elif 条件与if 条件完全相反时,您应该使用else
  • 请一次只问一个问题。
  • 使用字典,它的确切目的是:在恒定时间内找到一个键。

标签: python python-3.x list nested-lists lowercase


【解决方案1】:

问题是break语句,只要你没有找到你不应该打破的字符串。我保留了另一个变量found,它表示是否。循环结束是因为我们找到了匹配项,或者因为我们完成了对列表的遍历。

find = str(input("Please input a name."))
found = False
for k,v in people_list:
    if find == k:
        print("Name:" + str(k),"& Age:" + str(v))
        found = True
        break
if not found:
    print("A match was not found.")

【讨论】:

    猜你喜欢
    • 2013-03-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    相关资源
    最近更新 更多