编写一个名为“ print_keys”的函数,该函数将键值存储区作为参数,字符串作为键,整数作为值。该功能将输入的每个键打印在单独的行上。也就是说,它会打印键值存储区的所有键,并用换行符分隔
我在这个问题上停留了一段时间,似乎无法理解。香港专业教育学院试图做一个for循环,并与之串联,但它不工作,我怎么期望的。真的需要帮助,谢谢。
这是我到目前为止所拥有的
def print_keys(dict):
for key, value in sorted(dict.items()):
print('{} - {}, {} - {}'.format(key, value[0], key, value[1]))
这是显示的错误 输入[{'spy':9,'stimulate':8,'strict':8}]时出错:'int'对象不可下标
请注意,问题已经生成了一个列表,我所要做的就是问题在问什么
答案 0 :(得分:0)
您的代码假设每个词典项目都包含至少包含两个项目的列表-这就是value[0]
和value[1]
的印刷品对我说的。但是示例输入中每个字典项只有一个整数。这就是为什么您收到“不可下标”错误的原因-整数9
不可下标。如果spy
的条目为[9 ,3]
,它将正常工作。
删除索引,然后从打印中移出下一对就足以使其工作。
my_dict = {'spy': 9, 'stimulate': 8, 'strict': 8}
def print_keys(dict_to_print):
for key, value in sorted(dict_to_print.items()):
print('{} - {}'.format(key, value))
print_keys(my_dict)
编辑:按值排序
my_dict = {'band': -1, 'yard': 16, 'universe': 8, 'dock': -3, 'missionary': 2 }
def print_keys(dict_to_print):
for key in sorted(dict_to_print, key=dict_to_print.get):
value = dict_to_print[key]
print('{} - {}'.format(key, value))
print_keys(my_dict)