py3k печать значимых цифр

#printing #python-3.x #significant-digits

#печать #python-3.x #значащие цифры

Вопрос:

В python3 есть хороший способ установить значимые цифры, например, если у меня есть список:

 l = [2.2738257169723513, 2.2725769281387329, 2.3101812601089478]
  

Я могу использовать хорошую новую систему печати и делать

 print(*l,sep="t")
  

Но мне неясно, как установить sigfig без выполнения

 m = "%.2f, %.2f, %.2f" % (l[0], l[1], l[2])
print(m)
  

Мне было интересно, есть ли возможность печатать, чтобы просто сказать — распечатать все значения с плавающей запятой до 2 dp?

Я думаю, я мог бы использовать цикл, но это кажется не очень похожим на Python

Комментарии:

1. Я бы посоветовал вам уточнить, имеете ли вы в виду значащие цифры или значимые десятичные знаки.

2. Тогда я думаю, что заголовок и содержание вопроса должны быть повторно учтены, иначе вопрос не связан с реальной проблемой.

Ответ №1:

На самом деле, это определенно pythonic, и это единственный способ сделать то, что вы просите. Тем не менее, вы все равно можете использовать понимание, чтобы сделать это более кратким (в этом случае используется кортеж, но вы можете использовать список или использовать list(map( ):

 # I've changed the name to float_list because l should not be
# used as a variable name in Python according to the standard
# style recommendations
print(*('{0:.2f}'.format(x) for x in float_list), sep="t")
  

Комментарии:

1. Фу, определенно не очень хороший стиль Python 3. str.format следует использовать. И … camelCase? Действительно?

2. @BlaXpirit Извините, старые привычки умирают с трудом. ( <smarmy> Кстати, это был mixedCase, а не camelCase </smarmy> )