在 Python 中使用列表时,打印每个元素通常会带来挑战。传统方法(例如将 "\n".join() 与 map() 结合使用或使用 for 循环遍历列表)可能会感觉很麻烦。本文研究了一种优雅的解决方案,使用拆包来实现打印列表项的简洁且 Python 的方式。
在 Python 3 中, print() 语句允许拆包,表示为用星号 (*) 表示。此功能使我们能够通过从单个变量“解压”多个对象来同时打印多个对象,从而有效地消除了显式循环或连接操作的需要。
myList = [Person("Foo"), Person("Bar")] print(*myList, sep='\n')
通过使用星号,myList 的元素被扩展为单独的参数,从而产生所需的输出:
Foo Bar
sep='\n' 参数确保每个项目都打印在新行上。这种解包技术集中体现了简单和简洁的 Pythonic 哲学。
对于 Python 2 用户来说,print 语句缺乏解包能力。但是,从 future 模块导入 print_function 允许采用 Python 3 打印语法。或者,可以使用简单的 for 循环来打印每个项目:
for p in myList: print p
虽然不如解包那么简洁,但列表推导式提供了操作列表的强大工具。将列表推导式与 "\n".join() 结合起来提供了一种可读的解包替代方案:
print '\n'.join(str(p) for p in myList)
这种方法使用 str() 将每个列表元素转换为字符串表示形式,并用换行符将它们连接起来。尽管不如解包那么简洁,但列表推导式仍然是处理列表的有效且通用的技术。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3