在嵌套列表中查找项

2024-05-01 22:02:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我参加的一个编码课程中的一个项目要求学生完成一个密码保护程序的代码,该程序有许多选项和一个菜单。我有困难的部分是打印一个密码的基础上与之相关的网站。你知道吗

密码保存在如下列表中:

passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]

我试图做的是在这个列表中找到一个项目的地址,由用户输入,然后直接在它后面打印项目。用户将被要求输入一个网站,并将打印列表中的以下项目(密码)。你知道吗

但是,出于测试的目的,我还需要检查是否有问题的网站的密码在“密码”列表中。你知道吗

if passwordToLookup in passwords:
            print(passwords.index(passwordToLookup))

出于某种原因,它总是返回“False”。这是因为我搜索的列表是加密的吗?如果是,如何在此列表中搜索特定项目?如何打印网站后面列表中的第二项?你知道吗


Tags: 项目代码用户程序密码编码列表网站
3条回答

你的问题是,你目前只在寻找密码,这是一个列表,但你需要遍历密码和测试其中的个人名单。你可以用这样的东西

passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]

def getPasswordIndex():
    for list in passwords:
        if "CoIushujSetu" in list:
            return list.index("CoIushujSetu")
        else:
            print(False)

print(getPasswordIndex())

#returns False then 1 so it's the second item in the second list """

print(passwords[1][1])

#prints "CoIushujSetu"

使用词典

# convert list into dictionary
d = dict(tuple(passwords))

try:
    d[passwordToLookup]
except KeyError:
    # what to do if no password available
else:
    # what to do if available

或者使用字典的默认get方法

return d.get(passwordToLookup, default=None)

不带词典

values = list(zip(*passwords))

try:
    the_password = values[1][values[0].index(passwordToLookup)]
except ValueError:
    # what to do if no password available
else:
    # what to do if available

您可以循环浏览列表并查看网站:

for elem in passwords:
    if passwordToLookup in elem:
        print # elem[0] for the website or elem[1] for the password

不知道为什么要打印索引,但如果需要,也可以使用passwords.index(elem)。你知道吗

相关问题 更多 >