我正在尝试通过使用具有两个不同细节的字典来解决这个问题:
direc = {}
a = 17
b = 165
direc.update({a: b})
a = 19
b = 174
direc.update({a: b})
for x,y in direc:
print('age:' +str(x) + ' and height :'+str(y))
我需要输出为:
age:17 and height:165
age:19 and height:174
更简单地说,只需将初始目录值作为文字给出:
direc = {17: 165, 19: 174}
for age, ht in direc.items():
print('age:', age, ' and height:', ht)
您不必一次构建一个条目的字典。 另外,请注意,print 允许您提供值列表 - 您不必转换数字并将它们连接到输出行中。
使用 direc.items()
而不是 direc
(它只提供键,而不是键+值对(。
for x,y in direc.items():
print('age:' +str(x) + ' and height :'+str(y))
{} 用于使字典而不是目录。无论如何,要回答您的问题,您可以将a
和b
保存为 direc 中的密钥。您可以通过以下方式实现这一目标:
direc={}
a=17
b=165
direc[a]= b
a=19
b=174
direc[a]= b
for x,y in direc.items(): # note: you need to use .items() it iterate through them
print('age:' +str(x) + ' and height :'+str(y))
但这并不是节省年龄和身高的最佳方法。因为如果有两个相同的年龄,它将覆盖第一个。你应该这样做:
direc["name"]=(a, b) # the name of the person
这样,如果您键入此人的姓名,它将返回其年龄和身高。
direc={}
direc["personA"]= (17,165) # you don't need to define a or b
direc["personB"]= (19,174)
for x,y in direc.items():
print('name:' + str(x) + ', age:' +str(y[0]) + ' and height :'+str(y[1]))