python - 将每 3 行连接在一起 Python

标签 python python-2.7

我当前有一个存储在变量中的列表,例如:

  • 2015 年 1 月 1 日
  • 13:22
  • 牛排
  • 2015年1月2日
  • 13:23
  • 薯条
  • 2015年1月3日
  • 13:23
  • 沙拉

我有一个变量 z 保存此信息。

我想将每 3 行连接在一起,这样输出就是日期 + 时间 + 顺序在一行中。我尝试了下面的方法,但这会在每行上放置 3 个字母,而不是 3 行

threelines = range(0,len(z),3)
for num, line in enumerate(z):
    if num in threelines:
        print ' '.join(z[num:num+3])

如有任何帮助,我们将不胜感激!

最佳答案

您不需要使用索引,您可以编写非常明确的代码,例如:

lines_iter = iter(z.splitlines())  # If z is a file, lines_iter = z works
# itertools.izip() is usable, too, for a low memory footprint:
for date_time_order in zip(lines_iter, lines_iter, lines_iter):
    print " ".join(date_time_order)  # "<date> <time> <order>"

这样做的优点是可以为您提供非常清晰的变量名称,并且即使 z 是一个迭代器(如文件)也可以工作:无需提前知道行数,而且这种方法占用的内存很少。

它的工作方式来自于 zip() 工作方式的具体细节:it builds tuples of elements, by getting the next element of each of its arguments in turn 。因此,它首先返回lines_iter的第一个、第二个和第三个元素,等等。

关于python - 将每 3 行连接在一起 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29942485/

相关文章:

python-2.7 - redis:匹配散列的部分键

python - Pyspark 将列类型从日期更改为字符串

python-2.7 - 如何解决以下错误?

python-2.7 - 更改 geopandas 中的单个补丁颜色

python - 全局名称未定义,我该如何导入?

python - Python 3 中导入错误,但适用于 Python 2

python - matplotlib 在某些数据集上生成奇怪的 y 轴?

python - random.setstate() 和 random.seed() 之间差异或相似的确切性质是什么

python - 我可以在一个网站上运行多个 Django 项目吗?

python - 为什么 recv 在接收到所有数据之前不阻塞?