Как мне отредактировать этот код так, чтобы он использовал словарь вместо двух списков - PullRequest
0 голосов
/ 23 апреля 2020
#!/usr/bin/env python

firstnames = ['Jane', 'John', 'Julie']
surnames = ['Mc Donald', 'Mc Daid', 'Mc Donagh']

user_input = raw_input('Enter the surname: ')
i = 0
found = False
while i < len(surnames) and not found:
    if surnames[i] == user_input:
        print('The first name is ' + firstnames[i])
    else:
        i = i + 1
if not found:
    print(user_input + ' not found')

Приведенный выше код выводит имя, соответствующее этой фамилии, если эта фамилия есть в списке.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Вы можете использовать это, используя if-else выражение:

names = {"Mc Donald": "Jane", "Mc Daid": "John", "Mc Donagh": "Jilie"}

user_input = input("Enter Surname")

if user_input in names.keys():
    print("The first name is ", names[user_input])
else:
    print(user_input, " not found")

или подобное, используя try-except:

names = {"Mc Donald": "Jane", "Mc Daid": "John", "Mc Donagh": "Jilie"}

user_input = input("Enter Surname")

try:
    print("The first name is ", names[user_input])
except:
    print(user_input, " not found")
0 голосов
/ 23 апреля 2020

Вы можете использовать dict comprehension для достижения этого:

firstnames = ['Jane', 'John', 'Julie']
surnames = ['Mc Donald', 'Mc Daid', 'Mc Donagh']
names = {k[0]: k[1] for k in zip(firstnames, surnames)} 
user_input = raw_input('Enter the surname: ')
print(names.get(user_input, user_input + " not found "))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...