Как я могу получить указанные c значения из списка в списках, внутри словаря и на основе ключей - PullRequest
0 голосов
/ 25 марта 2020

Привет, программисты, я немного новичок ...

У меня есть словарь, содержащий много списков в списках, и в программе я прошу пользователя ввести определенный c год этого год будет напрямую соотноситься с ключами словаря (я должен найти пользовательский ввод в ключах словаря), а затем, когда будет найден указанный ключ c, я должен напечатать этот указанный ключ c вместе с некоторой информацией / значения в ключе в виде списка списков.

В этом примере я буду использовать гораздо меньший размер выборки задачи, но, надеюсь, он будет работать с огромным набором данных:

dicti = {'1980': [['1','Emily', '800'], ['2','Steve', '20'],['3','france', '80']], '2000': [['1','jan', '8'],['2','aug', '0'], ['3','Ernest', '90']], 
'2003': [['1','mul', '40'],['2','Inuyasha', '20'],['3','hulk', '50'],['4','pop smoke', '1'],['5','kendrick', '2'],['6','nick', '1']],
 '2006'[['1','roger', '800'],['2','orochimaru', '1'], ['3', 'john', '783']]}

Вывод, если пользователь входит в 2003, должен выглядеть примерно так:

you selected 2003:
1.   mul: 40
2.   inuyasha: 20
3.   hulk: 50
4.   pop smoke: 1
5.   kendrick: 2
6.   nick: 1

Я попытался решить проблему с помощью этого кода:

yr = input('Enter yr: ')
for i in dicti.get(yr):
    for value in dicti[year]:
        print(val) 

, но этот код выдает:

1.   mul: 40
2.   inuyasha: 20
3.   hulk: 50
4.   pop smoke: 1
5.   kendrick: 2
6.   nick: 1
1.   mul: 40
2.   inuyasha: 20
3.   hulk: 50
4.   pop smoke: 1
5.   kendrick: 2
6.   nick: 1
1.   mul: 40
2.   inuyasha: 20
3.   hulk: 50
4.   pop smoke: 1
5.   kendrick: 2
6.   nick: 1
1.   mul: 40
2.   inuyasha: 20
3.   hulk: 50
4.   pop smoke: 1
5.   kendrick: 2
6.   nick: 1

Он производит то, что мне нужно, но неоднократно, и мне нужно только это, чтобы распечатать информацию один раз.

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Пожалуйста, проверьте это.

input_dict  = {
    '1980': [['1', 'Emily', '800'], ['2', 'Steve', '20'], ['3', 'france', '80']],
    '2000': [['1', 'jan', '8'], ['2', 'aug', '0'], ['3', 'Ernest', '90']],
    '2003': [['1', 'mul', '40'], ['2', 'Inuyasha', '20'], ['3', 'hulk', '50'], ['4', 'pop smoke', '1'],
             ['5', 'kendrick', '2'], ['6', 'nick', '1']],
    '2006': [['1', 'roger', '800'], ['2', 'orochimaru', '1'], ['3', 'john', '783']]}


user_input = input("Please select year: ")

if input_dict.get(user_input):
    for item in input_dict[user_input]:
        print(f"{item[0]}. {item[1]}: {item[2]}")

Вывод:

Please select year: 2003
1. mul: 40
2. Inuyasha: 20
3. hulk: 50
4. pop smoke: 1
5. kendrick: 2
6. nick: 1

0 голосов
/ 26 марта 2020

Я нашел решение моего вопроса выше ...

yr = input('enter yr: ')
for I in dicti[yr]:
    print(f'{I[0]}\t{I[1]}: {I[2]}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...