将Python列表长度转换为字符串

2 投票
3 回答
4244 浏览
提问于 2025-04-15 21:39

有没有一种比较好看(而不是丑陋)的方式来把列表的长度输出为字符串?现在我是在嵌套函数调用,像这样:

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

撰写回答