2010-04-15 84 views
2

是否有一個首選(不醜)的方式輸出一個列表長度作爲一個字符串?目前我嵌套函數調用如下:作爲一個字符串的Python列表長度

print "Length: %s" % str(len(self.listOfThings)) 

這似乎是一個黑客解決方案,是否有一個更優雅的方式來實現相同的結果?

回答

9

你不需要調用str

print "Length: %s" % len(self.listOfThings) 

注意,使用%被棄用,你應該更喜歡使用str.format如果你正在使用Python 2.6或更新版本:

print "Length: {0}".format(len(self.listOfThings)) 
1

那麼,你可以忽略str()的呼叫,但就是這樣。怎麼叫功能「黑客」?

+0

它看起來很醜陋,我經常發現python比我想象的更有效率的做事方式 – 2010-04-15 17:51:05

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

相關問題