在嵌套列表中查找项目

时间:2017-06-21 00:37:14

标签: python python-3.x

编码课程中的一个项目我要求学生完成密码保护程序的代码,其中包含许多选项和菜单。我遇到困难的部分是根据与之相关的网站打印密码。

密码保存在如下列表中:

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

我尝试做的是找到该列表中的项目地址,由​​用户输入,并在其后直接打印该项目。将要求用户输入网站,并打印列表中的以下项目(密码)。

但是,出于测试目的,我还需要检查相关网站的密码是否在"密码"列表。

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

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

5 个答案:

答案 0 :(得分:1)

使用词典

www.streamable.com

或使用字典的默认get方法

public class SayHelloConfiguration {

  @Autowired
  IClientConfig ribbonClientConfig;

  @Bean
  public IPing ribbonPing(IClientConfig config) {
    return new PingUrl();
  }

  @Bean
  public IRule ribbonRule(IClientConfig config) {
    return new AvailabilityFilteringRule();
  }

}

没有词典

PingUrl ()

答案 1 :(得分:0)

您的问题是您目前只查找密码列表,但您需要迭代密码并测试其中的各个列表。你可以使用这样的东西

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"

答案 2 :(得分:0)

您可以遍历列表并检查网站:

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

不确定为什么要尝试打印索引,但如果需要,也可以使用passwords.index(elem)

答案 3 :(得分:0)

使用词典key: value对),您的代码就像这样简单:

passwords = [["yahoo","XqffoZeo"],["google","CoIushujSetu"]]
pass_dict = dict(passwords)

site = input("Insert site: ")

if site in pass_dict:        # searching only in keys
    print(pass_dict[site])   # print value of that key

答案 4 :(得分:0)

您需要做的是遍历列表,如下所示:

def ifPassExist():
    for password in passwords:
        if passwordToLookUp in password:
            return passwords.index(password)