2016-08-14 6 views
0

Я изучаю python в настоящее время с текстом курса Python Crash. Я участвую в том, что списки в словарях специально пробовали сами. В тексте объясняется, как получить доступ к значениям, которые находятся в форме списка в python, когда они являются строками, но не целыми числами. Я получил мой код для работы до сих пор, но он дважды печатает список любимых номеров в форме списка. Как исправить это, чтобы он печатал его только один раз и явно без скобок?Список целых чисел в словаре python

вот мой код.

favorite_numbers = { 
    'king': ['7','10'], 
    'jake': ['29','77'], 
    'mr robot': ['234','1337'], 
    'elliot': ['1234' ,'89'], 
} 

for name, number in favorite_numbers.items(): 
    print(
    "Hey, " 
    + name.title() + 
    " your favorite numbers are: " 
    ) 
    for numbers in number: 
     print(number) 

Помощь? пожалуйста и спасибо.

ответ

1

Это зафиксирует текущий код:

for numbers in number: 
    print(numbers) 

Но это своего рода обратной дороге назвать переменные. Как насчет этого?

for name, numbers in favorite_numbers.items(): 
    print(
    "Hey, " 
    + name.title() + 
    " your favorite numbers are: " 
    ) 
    for number in numbers: 
     print(number) 
0

Вы в замешательстве, потому что у вас есть аналогичные переменные. В вашем случае, эта линия:

for name, number in favorite_numbers.items(): 

связывает number с последовательными значениями в словаре. В этом примере они представляют собой списки, содержащие строки.

Эта линия:

for numbers in number: 

связывает numbers последовательных строк в списке.

Эта линия:

print(number) 

печатает список, не строка.

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

for name, list_of_numbers in favorite_numbers.items(): 
    print(
    "Hey, " 
    + name.title() + 
    " your favorite numbers are: " 
    ) 
    for number in list_of_numbers: 
     print(number) 
2

Я думаю, что ваше именование спутать вам немного. Посмотрите на использование number и numbers. Исправлена ​​версия ниже. Также проверьте `print (" foo ", end =" "), чтобы иметь несколько операторов печати, которые не заканчиваются в новой строке, если вы хотите немного очистить внешний вид вывода.

favorite_numbers = { 
    'king': ['7','10'], 
    'jake': ['29','77'], 
    'mr robot': ['234','1337'], 
    'elliot': ['1234' ,'89'], 
} 

for name, numbers in favorite_numbers.items(): 
    print(
    "Hey, " 
    + name.title() + 
    " your favorite numbers are: " 
    ) 
    for number in numbers: 
     print(number) 
Смежные вопросы