Python 组合字符串和整数并打印

Python 组合字符串和整数并打印,python,list,optimization,printing,iteration,Python,List,Optimization,Printing,Iteration,鉴于以下列表: 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 要以指定的精确格式打印,请执行以下操作: print('\n'.join([a[i] + ',' + str(b[i]).strip('[').stri

鉴于以下列表:

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

要以指定的精确格式打印,请执行以下操作:

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
对于python程序来说,100*100元素是一个非常小的数字——任何这种规模的优化都可能无法让我们人类注意到。要测试:

%%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)

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

使用
范围

for i in range(len(b)):
    print("{},{}".format(a[i],','.join([str(x) for x in b[i]])))

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

您可以尝试使用
zip()
str.join()


是的,但我必须以100 x 100的速度运行5000次迭代,如果每次迭代需要几秒钟,整个程序需要几分钟,因此我担心100*100可能需要100毫秒,经过测试。另外,大部分时间可能是由
print
本身占用的,因为stdout捕获和显示字符需要时间。您能检查我的答案并告诉我们是否有帮助吗?
>>> a = ['abc','cde','efg']
>>> b = [[1,2,3],[2,3,4],[4,5,6]]
>>> print('\n'.join(','.join(map(str, (x, *y))) for x, y in zip(a, b)))
abc,1,2,3
cde,2,3,4
efg,4,5,6