Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python3.X-使用用户输入搜索列表并打印结果_Python_Python 3.x_List_Search - Fatal编程技术网

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

Python3.X-使用用户输入搜索列表并打印结果,python,python-3.x,list,search,Python,Python 3.x,List,Search,首先,这是一个学校作业,所以我不是在寻找一个完整的答案,我在寻找一个方向。我的任务是把一个文本文件加载到一个列表中,把每一行分开。(文本文件是每个美国邮政编码、zipcode所在城市以及加利福尼亚州贝克斯菲尔德市93312号州)。创建列表后,程序需要做的下一件事是接收用户zipcode,然后打印出zipcode、城市和州。这是我到目前为止的代码,我完全不知道该怎么做。再一次,我不是在寻找一个完整的答案,只是一个方向。有时我会错过一些简单的解决方案,只需要有人说一些能让它在我脑海中闪现的话。感谢您

首先,这是一个学校作业,所以我不是在寻找一个完整的答案,我在寻找一个方向。我的任务是把一个文本文件加载到一个列表中,把每一行分开。(文本文件是每个美国邮政编码、zipcode所在城市以及加利福尼亚州贝克斯菲尔德市93312号州)。创建列表后,程序需要做的下一件事是接收用户zipcode,然后打印出zipcode、城市和州。这是我到目前为止的代码,我完全不知道该怎么做。再一次,我不是在寻找一个完整的答案,只是一个方向。有时我会错过一些简单的解决方案,只需要有人说一些能让它在我脑海中闪现的话。感谢您的时间和任何信息或帮助。

数组。index()不返回元素本身;它返回它所在的索引。例如,如果“93267”是列表中的第二个元素,您调用了array.index('93267'),则会得到“1”。尝试创建一个保存索引的变量,然后打印该索引中的任何内容:

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

希望这有帮助;如果你遇到更多的问题,尽管说。祝你的学校项目好运

array.index()不返回元素本身;它返回它所在的索引。例如,如果“93267”是列表中的第二个元素,您调用了array.index('93267'),则会得到“1”。尝试创建一个保存索引的变量,然后打印该索引中的任何内容:

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


希望这有帮助;如果你遇到更多的问题,尽管说。祝你的学校项目好运

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

这段代码是一个快速的例子,说明了一种方法。文件
zipcodes.txt
中只有您在说明中给出的一个示例

index1 = array.index(userInput)
print(array[index1))
控制台:

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("\nNo match for zipcode: '{}'\n".format(user_zipcode))

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

这段代码是一个快速的例子,说明了一种方法。文件
zipcodes.txt
中只有您在说明中给出的一个示例

index1 = array.index(userInput)
print(array[index1))
控制台:

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("\nNo match for zipcode: '{}'\n".format(user_zipcode))

如果我理解正确,
array
的结构将以如下方式结束:

[['ZIPCODE','CITY','STATE'],['ZIPCODE','CITY','STATE'],…]

userInput
将保存一个表示ZIPCODE的字符串

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

您可以遍历
数组中的每个条目
,并检查该条目的第一个元素是否与
用户输入
匹配

如果有,您可以打印该条目


注意:为了理解打印语句中出现错误的原因,请检查的以下描述,即
索引
方法。

如果我理解正确,数组的结构将如下所示:

[['ZIPCODE','CITY','STATE'],['ZIPCODE','CITY','STATE'],…]

userInput
将保存一个表示ZIPCODE的字符串

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

您可以遍历
数组中的每个条目
,并检查该条目的第一个元素是否与
用户输入
匹配

如果有,您可以打印该条目


注意:为了理解打印语句中出现错误的原因,请检查此说明,即
index
方法。

这会给您带来错误吗?您循环的每一行都将“数组”重新初始化为
array=[]
,因此它只包含最后一行
ins.close()
不需要,因为它是用上下文打开的manager@kstullich我从使用userInput@DeliriousLettuce我不太确定,所以还是添加了它,谢谢你的更正。这会给你带来错误吗?你循环的每一行都会重新初始化你的“数组”为
array=[]
因此它将只包含最后一行
ins。关闭()
不需要,因为它是用上下文打开的manager@kstullich我从使用userInput@DeliriousLettuce我不太确定,所以还是加了一句,谢谢你的纠正谢谢你的信息和帮助。不幸的是,我的指导老师说,这只能用一个或多个列表来完成。如果不是太麻烦的话,我对编码非常陌生,我真的很想理解它,我能得到的任何帮助都是非常感谢的。在这次任务之前,我一直做得很好,处理这份清单让我有些困惑。非常感谢。我会看看我是否能自己处理这件事,弄清楚发生了什么,它在做什么。真的非常感谢你的帮助,如果我不懂的话一定会问。谢谢你的信息和帮助。不幸的是,我的指导老师说,这只能用一个或多个列表来完成。如果不是太麻烦的话,我对编码非常陌生,我真的很想理解它,我能得到的任何帮助都是非常感谢的。在这次任务之前,我一直做得很好,处理这份清单让我有些困惑。非常感谢。我看看是不是