Python 3.X - 使用用户输入搜索列表并打印结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 3.X - 使用用户输入搜索列表并打印结果相关的知识,希望对你有一定的参考价值。

with open("zipcodes.txt", "r") as ins:
   array = []
   for line in ins:
       array.append(line.split(","))

print(array)

userInput = input("Please enter the codes your looking for: ")

print(array.index(userInput))

首先,这是一个学校作业,所以我不是在寻找一个完整的答案,我正在寻找一个方向。我的任务是将文本文件加载到列表中,将每行分开。 (文本文件是每个美国邮政编码,邮政编码所在的城市,以及状态EX.93312,BAKERSFIELD,CA)。一旦创建了列表,程序需要做的下一件事就是接收用户邮政编码,然后打印出邮政编码,城市和州。这是我到目前为止的代码,我完全不知道该怎么做。我再次寻找一个完整的答案,只是一个方向。有时候我会想念简单的解决方案,只需要有人说出一些可以让我点击它的东西。感谢您的时间和任何信息或帮助。

答案

编辑:此版本不使用字典,而是使用列表。

此代码是您可以这样做的一种快速示例。文件zipcodes.txt只有你在描述中给出的那个例子。

MATCH = """
Zipcode: {}
City:    {}
State:   {}
"""

with open('zipcodes.txt', 'r') as f:
    zipcodes = [line.rstrip().split(',') for line in f]

while True:
    user_zipcode = input("Enter zipcode (or (Q)uit): ")
    if user_zipcode.lower() == 'q':
        break
    for zipcode, city, state in zipcodes:
        if user_zipcode == zipcode:
            print(MATCH.format(zipcode, city, state))
            break
    else:
        print("
No match for zipcode: '{}'
".format(user_zipcode))

安慰:

Enter zipcode (or (Q)uit): 12345

No match for zipcode: '12345'

Enter zipcode (or (Q)uit): 93312

Zipcode: 93312
City:    BAKERSFIELD
State:   CA

Enter zipcode (or (Q)uit): q
另一答案

array.index()不返回元素本身;它返回它的索引。例如,如果'93267'是列表中的第二个元素,并且您调用了array.index('93267'),那么您将获得'1'。尝试创建一个包含索引的变量,然后打印该索引处的任何内容:

index1 = array.index(userInput)
print(array[index1))

然而,您可能会遇到这样的问题,因为在您的代码中,您用逗号分隔每一行,并且在您的描述中,您的邮政编码,城市和州由逗号分隔。我不完全确定你的原始文本文件是什么样的,所以我可能错了,但要注意它可能会导致一些问题。

希望这有帮助;如果你遇到更多问题,请随时说出来。祝你学校的项目顺利!

另一答案

如果我理解正确的话,array的结构会像这样结束:

[['ZIPCODE','CITY','STATE'],['ZIPCODE','CITY','STATE'],...]

userInput将持有代表ZIP代码的字符串。

给定array的结构,对于array(每个子列表)中的每个条目,条目中的第一个元素(条目[0])将是ZIPCODE。

你可以遍历array中的每个条目,并检查该条目的第一个元素是否与userInput匹配。

如果是,您可以打印该条目。

注意:要了解为什么从print语句中获得错误,请查看list methods的描述,即index方法。

以上是关于Python 3.X - 使用用户输入搜索列表并打印结果的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动填充html列表为用户创建搜索字段

如何使用 Angular js 制作搜索类型下拉列表?

使用 React Hooks 根据搜索输入值重新加载对象数组

根据在Flex中文本区域输入的用户输入文本过滤/搜索Array Collection的列表框

在 Django 中搜索并获取匹配的 LDAP 用户列表

用户手机上应用搜索的关键字列表