Как создать словарь, который возвращает значение (ключ) в вопросе? - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно создать словарь (в вашем файле) из четырех человек из моего курса и названия группы, к которой они принадлежат. Когда я запускаю свою программу, он должен попросить пользователя ввести имя и вернуть ему имя группы этого человека. Это должно выглядеть примерно так:

Welcome to the py-group-infromator, I can tell you where those users belong to:
{name_user}
{name_user}
{name_user}
{name_user}
Which user do you want to ask for?
{name_user}
{name_group}

в начале

notes = ''' "Welcome to the py-group-informator,
    I can tell you where those users belong to" :
    Azura
    Mate
    Anna 
    John 
    " Which user do you want to ask for ?" '''
print(notes)

Мой словарь

people = [{'name': "Azura", 'group': "cute_python"},{'name': "Mate", 'group': "cute_python"},{'name': "Anna", 'group': "fatal_error"},{'name': "John", 'group': "fatal_error"}]

Может ли что-нибудь мне помочь? Очень жаль за мой стиль, это мой первый вопрос;)

Ответы [ 3 ]

1 голос
/ 06 ноября 2019

Аналогично другому ответу, но я бы написал немного иначе:

people = [
    {'name': "Azura", 'group': "cute_python"},
    {'name': "Mate", 'group': "cute_python"},
    {'name': "Anna", 'group': "fatal_error"}, 
    {'name': "John", 'group': "fatal_error"}
]
name_to_group = {d['name']: d['group'] for d in people}

print("Group Information")
names = ', '.join(name_to_group)
name = input(f"Enter one of {names} or 0 to exit: ")
while name != '0':
    if name not in name_to_group:
        continue
    print(f"{name} is in group {name_to_group[name]}")
    name = input(f"Enter one of {names} or 0 to exit: ")
print('Good Bye')

Пример вывода:

Group Information
Enter one of Azura, Mate, Anna, John or 0 to exit: Mate
Mate is in group cute_python
Enter one of Azura, Mate, Anna, John or 0 to exit: John
John is in group fatal_error
Enter one of Azura, Mate, Anna, John or 0 to exit: 0
Good Bye
0 голосов
/ 07 ноября 2019

Ниже приводится основная логика для извлечения из вас структуры данных (намеренно опуская ваш список и текст приветствия). Предполагая, что они у вас есть, сначала запишите вводимые пользователем данные, как показано ниже, и продолжайте поиск группы, к которой они принадлежат.

user_name = input("Which user do you want to ask for ?")
    for item in people:
        for key in item:
            if item[key] == user_name:
                    print(item['group'])
                    break
0 голосов
/ 06 ноября 2019

Попробуйте это:

people = [
    {'name': "Azura", 'group': "cute_python"},
    {'name': "Mate", 'group': "cute_python"},
    {'name': "Anna", 'group': "fatal_error"}, 
    {'name': "John", 'group': "fatal_error"}
]

def op(names):
    for value in people:
        if value['name'].lower() in names.lower():
            print(value['group'])

x = op(input("Welcome to the py-group-information,I can tell you where 
    those users belong to : Azura Mate  Anna   John Which user do you want 
    to ask for ?"))
...