Python字典打印问题:如何输出排序后字典的首尾各4个条目
解决Python字典排序后仅打印指定条目(前4+后4)的问题
你的问题出在遍历了排序后字典的所有条目,而且用列表推导式执行print操作属于不规范用法(列表推导式应专注生成列表,而非执行副作用)。以下是修正方案:
核心思路
sorted(countryDict.items())直接返回有序的元组列表(每个元组是(key, value)),无需转成字典,避免冗余操作。- 通过切片语法快速获取前4条
[:4]和最后4条[-4:],分别遍历打印即可。
修正后的代码
# 获取按字母排序的条目列表(无需转字典) sorted_country_items = sorted(countryDict.items()) # 打印前4个条目 for key, value in sorted_country_items[:4]: print(f'{"%24s" % key} - {value[0]:13}{"%9s" % value[1]}') # 打印分隔空行 print() # 打印最后4个条目 for key, value in sorted_country_items[-4:]: print(f'{"%24s" % key} - {value[0]:13}{"%9s" % value[1]}')
效果说明
运行后会输出你需要的格式:
Afghanistan - South Asia 652230 Akrotiri - Europe 123 Albania - Europe 28748 Algeria - Africa 2381740 West Bank - Middle East 5860 Yemen - Middle East 527968 Zambia - Africa 752618 Zimbabwe - Africa 390757
内容的提问来源于stack exchange,提问作者Hunter TerHorst
相关产品推荐
相关产品推荐

