2016-08-14 95 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)