假设我有一个列表:
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打印?
答案 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运算符将打包列表