2016-08-14 98 views
0

我正在學習python當前與Python速成課程文本。我在字典中列出專門用於嘗試的部分。該文本解釋瞭如何訪問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

我想你混淆命名你一點。看看你的使用numbernumbers。下面是固定版本。如果要清理輸出的外觀,也檢查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)