To relate the data, just use the function zip
passing as parameter the values that are inside your lists. See the example below:
usuarios = {"user": ["Gabriel", "Vanessa"]}
senhas = {"senha": ["pato23", "gamer23_bot@senha"]}
for item in zip(usuarios["user"], senhas["senha"]):
print(item)
# ('Gabriel', 'pato23')
# ('Vanessa', 'gamer23_bot@senha')
You can also use the list method index
to get the position of the user name in the list that is in the key user and consequently, get the position of the password that is in the list of password.
usuarios = {"user": ["Gabriel", "Vanessa"]}
senhas = {"senha": ["pato23", "gamer23_bot@senha"]}
nome_procurado = "Gabriel"
posicao = usuarios["user"].index(nome_procurado)
senha = senhas["senha"][posicao]
If I may say so, I don’t think it’s right for you to create a user-only dictionary and another one for passwords only. You could in single dictionary store this information to make it easier, practical and organized the dictionary. Example:
registros = {"user": ["Gabriel", "Vanessa"], "senha": ["pato23", "gamer23_bot@senha"]}
To further facilitate dictionary manipulation, you can define user names as the keys dictionary registros
, where each user will have a dictionary to store their information. Example:
# Dentro do dicionário registros temos chaves que serão os nomes dos usuários,
# e essas chaves guardarão outros dicionários contendo as informações de cada usuário.
registros = {
"Gabriel": {"senha": "pato23"},
"Vanessa": {"senha": "gamer23_bot@senha"}
}
# Abaixo está um exemplo simples para você ver o quão fácil ficaria
# o código com esse formato de dicionário acima. No exemplo abaixo, eu criei
# uma tela para redefinir senha.
nome = input("Digite seu nome: ")
senha = input("Digite sua senha: ")
nova_senha = input("Digite sua nova senha (Mínimo de 5 caracteres): ")
print("Verificando nome de usuário...")
if nome in registros:
print("Verificando senha...")
if registros[nome]["senha"] == senha:
print("Logado com sucesso.")
if len(nova_senha) > 5:
registros[nome]["senha"] = nova_senha
print("Senha redefinida.")
else:
print("A senha deve ter no mínimo 5 caracteres.")
else:
print("Senha inválida.")
else:
print("Nome de usuário inválido.")
i just didn’t understand this " for x in lista_usuarios" ?
– jao
'x' in this case is a helper variable to scroll through a list. The " for x in lista_usuarios" command takes one by one the objects within the 'userslist' and executes the commands below. You could use " for usuario in lista_usuarios" / " for pessoa in lista_usuarios" / " for cadastrado in lista_usuarios" /etc. But it is important to note that this variable will be local, defined only dendro of loop 'for... in'. I used a different name precisely to highlight the hierarchy of the variable or is within which space of the program it is defined. The video I gave you explains that question well.
– Thales Almeida