2016-10-15 87 views
0

我目前正在研究一个猜测谁喜欢学校工作的游戏,我似乎无法得到这个工作。我想要做的是从列表中的所有字典中打印字段“名称”。Python - 如何从列表中的许多字典打印某个字典字段?

Greg = {"Name":"Greg", "HairLength":"Short", "HairColour":"Brown", "FacialHair":"Yes", "Jewellery":"Yes", "Hat":"No", "Lipstick":"No", "Gender":"Male"} 

Chris = {"Name":"Chris", "HairLength":"Long", "HairColour":"Blonde", "FacialHair":"No", "Jewellery":"No","Hat":"Yes", "Lipstick":"Yes", "Gender":"Male"} 

Jason = {"Name":"Jason", "HairLength":"Short", "HairColour":"Brown", "FacialHair":"Yes", "Jewellery":"No","Hat":"Yes", "Lipstick":"No", "Gender":"Male"} 

Clancy = {"Name":"Clancy", "HairLength":"Bald", "HairColour":"Red", "FacialHair":"Yes", "Jewellery":"No", "Hat":"No","Lipstick":"No", "Gender":"Male"} 

Betty = {"Name":"Betty", "HairLength":"Short", "HairColour":"Blonde", "FacialHair":"No", "Jewellery":"Yes","Hat":"Yes", "Lipstick":"Yes", "Gender":"Female"} 

Helen = {"Name":"Helen", "HairLength":"Short", "HairColour":"Brown", "FacialHair":"No", "Jewellery":"No", "Hat":"No","Lipstick":"Yes", "Gender":"Female"} 

Selena = {"Name":"Selena", "HairLength":"Long", "HairColour":"Brown", "FacialHair":"No", "Jewellery":"Yes","Hat":"No", "Lipstick":"No", "Gender":"Female"} 

Jacqueline = {"Name":"Jacqueline", "HairLength":"Long", "HairColour":"Red", "FacialHair":"Yes", "Jewellery":"Yes", "Hat":"No","Lipstick":"No", "Gender":"Female"} 


AISuspects = ([Greg, Chris, Jason, Clancy, Betty, Selena, Helen, 
Jacqueline]) 
UserSuspects = ([Greg, Chris, Jason, Clancy, Betty, Selena, Helen, Jacqueline]) 

print("AISuspects:") 
#Here i want it to print the field "Name" in every dictionary within the list AISuspects 


print("UserSuspects:") 
#Here i want it to print the field "Name" in every dictionary within the list UserSuspects 

预期输出和电流输出溶液之后:

AI嫌疑: [ '格雷格', '克里斯', '杰森', '克兰西', '贝蒂', '塞莱娜','海伦”, '杰奎琳']

用户怀疑: [ '格雷格', '克里斯', '杰森', '克兰西', '贝蒂', '塞莱娜', '海伦', '杰奎琳']

+0

你不需要括号'()'arou找到你的'AISuspects'和'UserSuspects'列表。只需用'[]'创建列表就足够了。 – idjaw

回答

5

您可以使用列表理解来获取所有嫌疑人姓名的列表

suspects_names = [suspect['Name'] for suspect in AISuspects] 

然后你可以使用print(' '.join(suspect_names))

如果你不介意在一个新行打印每个名字,只是用一个for循环:

for suspect in AISuspects: 
    print(suspect['Name']) 

看看身边的列出了这些括号的护理定义,你不需要它们,它们通常用于定义元组,所以我会摆脱它们

+0

我稍微困惑,你可以扩展,而不是只知道它的工作原理,我可以继续前进...谢谢 – ComputerExpert69

+0

@ ComputerExpert69你可以具体说明哪一部分你完全困惑吗?我认为使用理解提供的第一个解决方案是你可能还没有学到的东西。第二种解决方案可能看起来更为熟悉。 – idjaw

+0

对不起,我没有意识到你编辑过你的帖子,是的,我明白第二个解决方案谢谢! – ComputerExpert69

-1
UserSuspects = [Greg['Name'], Chris['Name'],Jason['Name'], Clancy['Name'], Betty['Name'], Selena['Name'], Helen['Name'], Jacqueline['Name']] 


print UserSuspects 
+0

这是一个更简单的解决方案,我从其他解决方案中获得错误,所以我会让你解决这个问题;) – ComputerExpert69

+0

接受这个解决方案没有任何意义@ ComputerExpert69当另一个显然是更好的解决方案, *解决这个问题的方法。 – idjaw

+0

它究竟是一个“更好”的解决方案呢? @idjaw – ComputerExpert69