Длина списка Python в виде строки - PullRequest
2 голосов
/ 15 апреля 2010

Есть ли предпочтительный (не уродливый) способ вывода длины списка в виде строки? В настоящее время я вкладываю вызовы функций так:

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

Это похоже на решение взлома, есть ли более изящный способ достижения того же результата?

Ответы [ 3 ]

9 голосов
/ 15 апреля 2010

Вам не нужно звонить на str:

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

Обратите внимание, что использование % устарело, и вам лучше использовать str.format, если вы используете Python 2.6 или новее:

print "Length: {0}".format(len(self.listOfThings))  
2 голосов
/ 15 апреля 2010

"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.

1 голос
/ 15 апреля 2010

Ну, вы можете пропустить вызов str(), но это все. Почему происходит вызов функций "взломать"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...