将Python列表长度转换为字符串
有没有一种比较好看(而不是丑陋)的方式来把列表的长度输出为字符串?现在我是在嵌套函数调用,像这样:
print "Length: %s" % str(len(self.listOfThings))
这样看起来有点像是临时解决办法,有没有更优雅的方法来实现同样的效果?
3 个回答
1
其实,你可以不使用 str()
这个函数,但也就只有这个了。为什么说调用函数是“一个黑科技”呢?
2
这段代码 "Length: %d" % len(self.listOfThings)
应该很好用。
字符串格式化的目的是把你的数据变成字符串,所以你不需要调用 str
。你只需要提供数据本身,这里是一个 int
(整数)。整数可以用很多种方式格式化,最常见的是 %d
,它会以我们平常看数字的方式显示出来。对于其他类型的数据,你可以用 %s
,这会自动调用 str
来转换对象;你自己调用 str
通常是不必要的。
我还会考虑用 "Length: %d" % (len(self.listOfThings),)
,有些人习惯用元组作为 str.__mod__
的参数,因为这样做有点特别,他们想提供一种更一致的方式。
如果我特别使用 print
,我可能会直接用 print "Length:", len(self.listOfThings)
。不过我其实很少用 print
。
9
你不需要调用 str
这个函数:
print "Length: %s" % len(self.listOfThings)
注意,使用 %
这种写法已经不推荐了,如果你使用的是 Python 2.6 或更新的版本,建议你使用 str.format
来格式化字符串:
print "Length: {0}".format(len(self.listOfThings))