python字典的新字符行

时间:2018-11-06 01:46:17

标签: python dictionary

编写一个名为“ 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'对象不可下标

请注意,问题已经生成了一个列表,我所要做的就是问题在问什么

1 个答案:

答案 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)