简化python打印

时间:2018-12-26 09:35:20

标签: python

假设我有一个列表:

row = [u'28d07ef48e40', u'373ac79f615f', u'a3ec4faddbec', u'c0195f9568c6', u'cc4ebc7b826c', u'ccdfdb826c', u'cc4fa826c', u'cc4eeesb826c', u'ccfesb826c']

我的印刷品是

fw.write("%s %s <%s> [%s] %s %s (%s) %s: %s" %(str(row[0]),str(row[1]),str(row[2]),str(row[3]),str(row[4]),str(row[5]),str(row[6]),str(row[7]),str(row[8])))

如何简化此python打印?

3 个答案:

答案 0 :(得分:0)

格式字符串采用最简单的形式。您可以“简化”的是转换为字符串:

"%s %s <%s> [%s] %s %s (%s) %s: %s".format(map(str, row))

map(str, row)将在第n行的所有元素上调用str(),并在2.7中返回一个列表,在3.7中返回迭代器。

答案 1 :(得分:0)

根据您的Python版本,您可以:

对于Python 3.6,以后使用新的format-strings,这是最推荐的方法:

row = [u'28d07ef48e40', u'373ac79f615f', u'a3ec4faddbec', u'c0195f9568c6', u'cc4ebc7b826c', u'ccdfdb826c', u'cc4fa826c', u'cc4eeesb826c', u'ccfesb826c']

fw.write(f'{row[0]} {row[1]} [{row[2]}] ...')

对于较低版本的Python 3,您可以使用str.format()格式的%推荐

fw.write('{} {} <{}> [{}] {} {} ({}) {}: {}'.format(row[0], row[1], row[2], ...)

对于Python 2,您可以继续进行%格式设置,但是不需要在参数上调用str()-它是自动完成的:

fw.write("%s %s <%s> [%s] %s %s (%s) %s: %s" % tuple(row))

答案 2 :(得分:0)

* row运算符将打包列表