0

0

使用 Python 格式化输出列表和嵌套列表,创建表格形式的数据展示

心靈之曲

心靈之曲

发布时间:2025-09-01 11:01:01

|

516人浏览过

|

来源于php中文网

原创

使用 python 格式化输出列表和嵌套列表,创建表格形式的数据展示

本文旨在介绍如何使用 Python 编程语言,在不依赖任何外部模块的前提下,将列表和嵌套列表的数据以表格形式进行格式化输出。文章将详细讲解如何利用 zip() 函数以及字符串格式化技巧,实现美观且易于阅读的表格数据呈现,并提供完整的代码示例和解释。

在数据处理和展示中,将数据以表格形式呈现是一种常见的需求。Python 提供了多种方式来实现这一目标,本教程将重点介绍如何使用内置函数和字符串格式化来实现。这种方法不需要导入任何额外的库,因此非常适合在资源受限或者需要最小化依赖的环境中使用。

利用 zip() 函数组合数据

当需要将两个或多个列表中的元素一一对应地组合在一起时,zip() 函数是一个非常有用的工具。例如,如果有一个包含国家名称的列表和一个包含对应奖牌数量的嵌套列表,可以使用 zip() 函数将它们组合成一个可迭代的对象,方便后续处理。

countries = [
    "Canada",
    "Italy",
    "Germany",
    "Japan",
    "Kazakhstan",
    "China",
    "South Korea",
    "United States"
]

counts = [
    [ 0, 3, 0 ],
    [ 0, 0, 1 ],
    [ 0, 0, 1 ],
    [ 1, 0, 0 ],
    [ 0, 0, 1 ],
    [ 3, 1, 1 ],
    [ 0, 1, 0 ],
    [ 1, 0, 1 ]
]

for country_name, medal_counts in zip(countries, counts):
    gold, silver, bronze = medal_counts
    total = sum(medal_counts)
    print(country_name, gold, silver, bronze, total)

在上述代码中,zip(countries, counts) 将 countries 列表和 counts 列表中的元素一一对应地组合在一起。在循环中,每次迭代都会得到一个国家名称和一个包含奖牌数量的列表。然后,将奖牌数量列表解包为金牌、银牌和铜牌的数量,并计算总奖牌数。最后,将这些数据打印出来。

立即学习Python免费学习笔记(深入)”;

当然,不使用 zip() 函数,也可以通过索引来访问列表中的元素,实现相同的功能:

for index in range(len(countries)):
    country_name = countries[index]
    medal_counts = counts[index]

    gold, silver, bronze = medal_counts
    total = sum(medal_counts)
    print(country_name, gold, silver, bronze, total)

虽然这种方法也能达到相同的目的,但使用 zip() 函数可以使代码更简洁、更易读。

ReportPlus数据报表中心小程序
ReportPlus数据报表中心小程序

ReportPlust意在打造一套精美的数据报表模板,里面高度封装日历组件、表格组件、排行榜组件、条形进度条组件、文本块组件以及ucharts的多个图表组件,用户只需要按照虚拟数据的格式,传特定数据即可方便、快捷地打造出属于自己的报表页面。该小程序主要使用了ucharts和wyb-table两插件实现的数据报表功能。 特点使用的是uni-app中最受欢迎的图表uCharts插件完成图表展示,该插件

下载

使用字符串格式化美化输出

仅仅将数据打印出来是不够的,为了使输出更美观,可以使用字符串格式化来控制数据的对齐方式和间距。Python 提供了多种字符串格式化的方法,这里推荐使用 format() 方法,因为它更灵活、更易于使用。

template = "{country_name:>15} {gold:>8} {silver:>8} {bronze:>8} {total:>8} "

print(template.format(country_name="", gold="Gold", silver="Silver", bronze="Bronze", total="Total"))
for country_name, medal_counts in zip(countries, counts):
    gold, silver, bronze = medal_counts
    total = sum(medal_counts)
    print(template.format(country_name=country_name, gold=gold, silver=silver, bronze=bronze, total=total))

在上述代码中,template 变量定义了一个格式化字符串,其中包含了五个占位符:country_name、gold、silver、bronze 和 total。每个占位符后面的 > 符号表示右对齐,数字表示占用的字符宽度。例如,{country_name:>15} 表示 country_name 字段右对齐,占用 15 个字符的宽度。

通过调用 format() 方法,可以将实际的数据填充到占位符中,生成格式化后的字符串。首先,打印表头,然后循环遍历每个国家和对应的奖牌数量,打印表格的每一行。

完整代码示例

将以上两个部分结合起来,可以得到一个完整的代码示例:

# Create a list of country names.
countries = [
    "Canada",
    "Italy",
    "Germany",
    "Japan",
    "Kazakhstan",
    "China",
    "South Korea",
    "United States"
]

# Create a table of medal counts.
counts = [
    [ 0, 3, 0 ],
    [ 0, 0, 1 ],
    [ 0, 0, 1 ],
    [ 1, 0, 0 ],
    [ 0, 0, 1 ],
    [ 3, 1, 1 ],
    [ 0, 1, 0 ],
    [ 1, 0, 1 ]
]

## -----------------
## Now we just need to make it look nice
## -----------------
template = "{country_name:>15} {gold:>8} {silver:>8} {bronze:>8} {total:>8} "
## -----------------

print(template.format(country_name="", gold="Gold", silver="Silver", bronze="Bronze", total="Total"))
for country_name, medal_counts in zip(countries, counts):
    gold, silver, bronze = medal_counts
    total = sum(medal_counts)
    print(template.format(country_name=country_name, gold=gold, silver=silver, bronze=bronze, total=total))

这段代码的输出结果如下:

                    Gold   Silver   Bronze    Total
         Canada        0        3        0        3
          Italy        0        0        1        1
        Germany        0        0        1        1
          Japan        1        0        0        1
     Kazakhstan        0        0        1        1
          China        3        1        1        5
    South Korea        0        1        0        1
  United States        1        0        1        2

注意事项

  • 在实际应用中,需要根据数据的实际情况调整格式化字符串中的宽度和对齐方式,以获得最佳的显示效果。
  • 如果数据量很大,可以考虑使用分页或者滚动的方式来展示数据,避免一次性输出过多内容。
  • 可以使用第三方库,例如 tabulate,来更方便地生成表格。但是,本教程的重点是在不依赖任何外部模块的前提下实现表格输出。

总结

本文介绍了如何使用 Python 内置函数 zip() 和字符串格式化技巧,将列表和嵌套列表的数据以表格形式进行格式化输出。这种方法简单易懂,不需要导入任何额外的库,非常适合在各种场景中使用。掌握这些技巧可以帮助您更好地处理和展示数据,提高工作效率。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

726

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

630

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

747

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1236

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

575

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

702

2023.08.11

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.7万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.0万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号