首页 > 解决方案 > 组合字符串和整数并打印

问题描述

鉴于以下列表:

a = ['abc','cde','efg']
b = [[1,2,3],[2,3,4],[4,5,6]]

什么是打印输出的优化方式,如下所示: 寻找一种优化方式,因为我有大约 100 x 100 个元素。还要记住,b 中的每个元素都是整数,而 a 中的每个元素都是字符串

abc,1,2,3
cde,2,3,4
efg,4,5,6

标签: pythonlistoptimizationprintingiteration

解决方案


要以您指定的确切格式打印:

print('\n'.join([a[i] + ',' + str(b[i]).strip('[').strip(']').replace(' ','') for i in range(len(a))]))

输出:

abc,1,2,3
cde,2,3,4
efg,4,5,6

100*100 元素对于 python 程序来说是一个非常小的数字——这种规模的任何优化都可能不足以让我们人类注意到。去测试:

%%timeit
array = np.random.randn(100,100)
print('\n'.join([str(e) for e in array])) # prints like above

结果:

148 ms ± 13.2 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

另外 - 请记住,主要瓶颈应该是print,而不是进行打印的实际过程,因此使用zip或其他技巧可能不起作用,因为它们不能帮助终端/其他标准输出捕获打印足够快。


推荐阅读