是否有一种首选(非丑陋)方式将列表长度输出为字符串?目前我正在嵌套函数调用,如下所示:
print "Length: %s" % str(len(self.listOfThings))
这似乎是一个黑客解决方案,是否有更优雅的方法来实现相同的结果?
答案 0 :(得分:9)
您无需拨打str
:
print "Length: %s" % len(self.listOfThings)
请注意,不推荐使用%
,如果您使用的是Python 2.6或更高版本,则应优先使用str.format
:
print "Length: {0}".format(len(self.listOfThings))
答案 1 :(得分:2)
"Length: %d" % len(self.listOfThings)
应该效果很好。
字符串格式化的目的是使您的数据成为字符串,因此调用str
不是您想要的:提供数据本身,在本例中为int
。 int
可以采用多种方式进行格式化,最常见的是%d
,它提供了它的十进制表示(我们习惯于查看数字的方式)。对于任意内容,您可以使用%s
,在所表示的对象上调用str
;自己永远不需要调用str
。
我还会考虑"Length: %d" % (len(self.listOfThings),)
- 有些人习惯性地使用元组作为str.__mod__
的参数,因为它的工作方式很有趣,他们希望提供更一致的东西。
如果我特别使用print
,我可能会使用print "Length:", len(self.listOfThings)
。不过,我很少使用print
。
答案 2 :(得分:1)
好吧,你可以省略str()
电话,但就是这样。为什么称功能为“黑客”?