Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我目前有一个存储在变量中的列表,例如:
2015年1月1日
13:22
牛扒
2015年1月2日
13:23
薯条
2015年1月3日
13:23
沙拉
我有一个变量z,可以保存此信息。
我想将每3行连接在一起,所以输出是日期+时间+一行中的顺序。我尝试了以下内容,但这在每行上放置了3个字母,而不是3行
任何帮助,将不胜感激!
这具有为您提供非常清晰易懂的变量名的优点,并且即使
它的工作方式来自
想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
4年前关闭。
我目前有一个存储在变量中的列表,例如:
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
的第一,第二和第三元素,等等。09-26 14:36