как создать словарь в python для неизвестных пар ключ: значение - PullRequest
0 голосов
/ 14 июля 2020
n = int(input())

MyDict = {}

key = []
value = []
check_key = []

for i in range(0,n):
    inp = input().split()
    key.append(inp[0])
    value.append(inp[1])

MyDict = dict(zip(key,value))

for j in range(0,n):
    check_inp = input()
    check_key.append(check_inp)

for k in check_key:
    if k in MyDict:
        print("{}={}".format(k,MyDict[k]))

    else:
        print("Not found")

Это все, что я написал

Пожалуйста, помогите мне сделать это более эффективно

Я не могу найти ошибку в тестовом примере, может кто-нибудь, пожалуйста, помогите мне разобраться ошибка

Я застрял здесь на 3 дня

изображение проблемы

Результаты теста

Ответы [ 2 ]

0 голосов
/ 15 июля 2020

Я думаю, причина того, что ваши тесты терпят неудачу, в том, что вы не отвечаете, когда они опрашивают phoneNumbers. Кроме того, ваш скрипт также соберет n количество имен для проверки на phoneBook, что, согласно спецификациям в вопросе, не должно.

Я немного упростил ваш код и удалил ненужные переменные:

# the number of entries on the phoneBook
n = int(input())

phoneBook = {}
for i in range(n):
    k, v = input().split()
    phoneBook[k] = v

while True:
    # the name to lookup in the phonebook
    name = input()
    
    # Exit condition if we don't get any input.
    if name == "":
        break
    
    # Tries to get the phoneNumber via the given name in the phoneBook
    try:
        print("{}={}".format(name,phoneBook[name]))
    # If 'name' is not inside of the dictionary, it raises an KeyError
    # which we catch here to instead just print out "Not found"
    except KeyError: 
        print("Not found")

Результат одного из моих тестов:

3
asdasd  123123123
jkdjkjkfd 129020990201
jkasjkldlk 1991991991
kalsdkl
Not found
asdasd
asdasd=123123123

Попробуйте это и посмотрите, решит ли это проблему для вас.

0 голосов
/ 14 июля 2020

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

a = {'sam' : 99999999,
     'tom' : 11111111,
     'har' : 22222222,}

a.get('sam')
a.get('edw')
a.get('har')

возвращает:

99999999
None
22222222
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...