【问题标题】:Python: User input in a list aligns to index in the second list, output second list elementPython:列表中的用户输入与第二个列表中的索引对齐,输出第二个列表元素
【发布时间】:2020-10-24 11:50:37
【问题描述】:

新程序员来了!

我有两个列表。 列表1 清单2 我需要在 list1 中查找一个名称,然后从 list2 打印其对应的索引

#我的想法

#获取用户输入

#检查用户名的输入是否与姓名列表(此处需要验证,何时循环?)

#如果验证失败让该人重新输入正确的姓名

#如果验证成功则继续程序

#使用输入姓名的索引与该人电话号码的索引相关

#output 姓名和电话号码

我相信我的逻辑在这方面是可以的,但它是我真正苦苦挣扎的代码。我已经完成了 Python Crash Course on lists 的工作,我完成了 Programming Logic and Design 第 5 版以及 Introduction to Computation and Programming using Python 的工作。但是,我似乎找不到太多他们在哪里做与此类似的事情。

感谢您提供的任何帮助/建议!

【问题讨论】:

    标签: python list iteration


    【解决方案1】:

    这应该可以帮助你:

    list1 = ['A','B','C'] #Name list
    list2 = [985,900,876] #Phone Number list
    
    while True:
        name = input("Name")
        if name in list1:
            index = list1.index(name)
            print(f"Name = {name} , Phone Number = {list2[index]}")
            break 
        else:
            print("Invalid input")
    

    输出:

    Name>? A
    Name = A , Phone Number = 985
    

    【讨论】:

    • 我最初打算使用 for 循环,然后我在 YT 上观看了 mulzy 的视频,但从未使用过 while 循环。是 index=list1.index(name) 将该索引号作为参考来帮助从另一个列表中调用它的对应部分吗?
    • 是的。这就是它的作用。而这个 while 循环是一个无限循环,只有在用户输入有效输入时才会中断。只需将我的代码复制粘贴到您的 python 编辑器中,让我知道它是否有效。
    • 太好了,我只是想确保我理解了。我很感激!
    【解决方案2】:

    我认为使用字典要容易得多:

    list1 = [a,b,c]
    list2 = [d,e,f]
    dic = {}
    for i in list1:
        for j in list2:
            dic[i] = j
    

    这会将 list1 中的每个名称放入字典中。

    while True:
        inp = input("Give a name please: ")
        if inp not in dic.keys():
            continue
        print(inp, str(dic[inp]))
        break
        
        
    

    【讨论】:

    • 我只读过字典,此时我还没有用它们写过任何东西。因此,您将字典中的索引 = 设置为 j 中的索引,然后让它打印相应的部分?
    • 是的,我在姓名和电话号码之间建立了某种联系。当您调用 dictionary[name] 时,它会输出关联的号码,因此在本例中为 phonenumber。
    • 我明白了,我相信我很快就会以某种方式/形状/形式使用字典!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多