为了账号安全,请及时绑定邮箱和手机立即绑定

Python字典输出问题

Python字典输出问题

Cats萌萌 2023-10-06 18:53:04
我是 python 和这个论坛的新手。在线学习对我来说不起作用,所以我不能只去找导师。这可能是我忘记的一些小事。我欢迎您能给我任何帮助。我试图使输出看起来像这样: Her name is Emmylou; 她有望于 2021 年秋季毕业;她的账单已付清;她的专业是考古学;她属于这些学校俱乐部——摄影、表演和欢乐合唱团Emm = {'name' : 'Emmylou', 'graduate' : 'Fall 2021', 'bill' : 'paid', 'major' : 'Archeology', 'clubs-' : 'Photography, Acting and Glee'}for Key, Value in Emm.items():print(f"Her {Key} is {Value} and she is on track to {Key} in {Value}; Her {Key} is {Value}; Her {Key} is {Value}; She belongs to these school {Key} {Value}")输出很混乱,当我运行它时看起来像这样:Her name is Emmylou and she is on track to name in Emmylou; Her name is Emmylou; Her name is Emmylou; She belongs to these school name EmmylouHer graduate is Fall 2021 and she is on track to graduate in Fall 2021; Her graduate is Fall 2021; Her graduate is Fall 2021; She belongs to these school graduate Fall 2021Her bill is paid and she is on track to bill in paid; Her bill is paid; Her bill is paid; She belongs to these school bill paidHer major is Archeology and she is on track to major in Archeology; Her major is Archeology; Her major is Archeology; She belongs to these school major ArcheologyHer clubs- is Photography, Acting and Glee and she is on track to clubs- in Photography, Acting and Glee; Her clubs- is Photography, Acting and Glee; Her clubs- is Photography, Acting and Glee; She belongs to these school clubs- Photography, Acting and Glee
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

正如其他人告诉你的那样,你正在迭代字典,并且在每次迭代中,键和值都会被替换并打印在新行中。


如果你想使用字典在一行中打印,你可以尝试将字典转换为数组并使用 format 方法打印。


Emm = {

    'name' : 'Emmylou',

    'graduate' : 'Fall 2021',

    'bill' : 'paid',

    'major' : 'Archeology',

    'clubs-' : 'Photography, Acting and Glee'

}


items = []

for (key, value) in Emm.items():

    items = items + [key, value]

print("Her {} is {} and she is on track to {} in {}; Her {} is {}; Her {} is {}; She belongs to these school {} {}".format(*items))



查看完整回答
反对 回复 2023-10-06
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

首先,我假设您实际上已经在代码中缩进了 print 语句,否则它根本无法工作。


问题是,对于每个循环,您都在所有位置填写相同的键/值对。


根据目的,您可以通过执行以下操作来获得声明:


Emm = {'name' : 'Emmylou', 'graduate' : 'Fall 2021', 'bill' : 'paid', 'major' : 'Archeology', 'clubs-' : 'Photography, Acting and Glee'}

print(f"Her name is {Emm['name']} and she is on track to graduate in {Emm['graduate']}; Her major is {Emm['major']}; Her clubs - is {Emm['clubs-']}")

迭代字典时可能面临的另一个问题是,除非使用 python 3.7 或更高版本,否则无法保证项目在字典中保存的顺序。因此,您的键/值对可能不会按照它们进入的顺序出现。


查看完整回答
反对 回复 2023-10-06
?
手掌心

TA贡献1942条经验 获得超3个赞

在您的代码中,您将迭代数据中的每个键值对;因此,您最终打印了 5 次,每次都使用一个键值对,而不是打印 1 次,每次都使用所有键值对。


尝试这个。


Emm = [

    ('name', 'Emmylou'),

    ('graduate', 'Fall 2021'),

    ('bill', 'paid'),

    ('major', 'Archeology'),

    ('clubs-', 'Photography, Acting and Glee'),

]


flat_items = [item for pair in Emm for item in pair]

print("Her {} is {} and she is on track to {} in {}; Her {} is {}; Her {} is {}; She belongs to these school {} {}".format(*flat_items))



查看完整回答
反对 回复 2023-10-06
  • 3 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信