You need to enable JavaScript to run this app. 使用基础Python(不使用Pandas)将字典转换为带列名的表并筛选前2高身高
优惠活动
大模型
产品
解决方案
定价
更多

使用基础Python(不使用Pandas)将字典转换为带列名的表并筛选前2高身高

纯基础Python实现方案

无需依赖Pandas或其他第三方库,仅使用Python内置语法即可完成目标,实现逻辑如下:

  • 对原字典条目按身高数值降序排序,截取排序后结果的前2个元素,得到身高Top2的条目
  • 自动计算两列的文本展示宽度,通过字符串对齐方法生成格式规整的表格
  • 生成的表格既可以直接在控制台打印展示,也可以直接输出为可复用的Markdown格式文本

可直接运行的完整代码

heights = {'Andy':150, 'Brenda':155, 'Cindy':130}

# 按身高降序排序,取排名前2的条目
top2_entries = sorted(heights.items(), key=lambda item: -item[1])[:2]

# 计算列宽,保证文本对齐效果
name_col_header = "姓名"
height_col_header = "身高"
# 计算姓名列的最大展示宽度
name_col_width = max(len(name_col_header), max(len(name) for name, _ in top2_entries))
# 计算身高列的最大展示宽度
height_col_width = max(len(height_col_header), max(len(str(h)) for _, h in top2_entries))

# 逐行拼接表格内容
output_rows = [
    # 表头
    f"| {name_col_header.ljust(name_col_width)} | {height_col_header.ljust(height_col_width)} |",
    # 分隔线
    f"|{'-'*(name_col_width + 2)}|{'-'*(height_col_width + 2)}|",
]
# 追加数据行
for name, height in top2_entries:
    row_content = f"| {name.ljust(name_col_width)} | {str(height).ljust(height_col_width)} |"
    output_rows.append(row_content)

# 打印最终结果
print("\n".join(output_rows))

代码运行后的输出效果

| 姓名   | 身高 |
|--------|------|
| Brenda | 155  |
| Andy   | 150  |

补充说明:如果需要适配控制台的中文全角字符对齐场景,仅需替换列宽计算的逻辑,将全角字符的展示宽度按2个单位计算即可,依然不需要引入任何第三方依赖。

内容的提问来源于stack exchange,提问作者Iterator516

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.25 07:15:03