23

数値のリストを印刷したいのですが、リストの各メンバーを印刷する前にフォーマットしたいと思います。例えば、

theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]

上記のリストを入力として、次の出力を出力したいと思います。

[1.34, 7.42, 6.97, 4.55]

リストのいずれかのメンバーについて、私はそれを使用してフォーマットできることを知っています

print "%.2f" % member

リスト全体に対してこれを実行できるコマンド/関数はありますか?書くことはできますが、すでに存在するのではないかと思っていました。

4

6 に答える 6

23

数字を印刷したいだけの場合は、単純なループを使用できます。

for member in theList:
    print "%.2f" % member

後で使用するために結果を保存する場合は、リスト内包表記を使用できます。

formattedList = ["%.2f" % member for member in theList]

次に、このリストを印刷して、質問のように出力を取得できます。

print formattedList

%また、これは非推奨になっていることにも注意してください。Python 2.6以降を使用している場合は、を使用することをお勧めしますformat

于 2010-05-04T00:24:16.573 に答える
10

Python 3.5.1の場合、次を使用できます。

>>> theList = [1.343465432, 7.423334343, 6.967997797, 4.5522577]
>>> strFormat = len(theList) * '{:10f} '
>>> formattedList = strFormat.format(*theList)
>>> print(formattedList)

結果は次のとおりです。

'  1.343465   7.423334   6.967998   4.552258 '
于 2016-03-31T20:16:41.100 に答える
6

"" .format()とジェネレータ式を使用した非常に短いソリューション:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]

>>> print(['{:.2f}'.format(item) for item in theList])

['1.34', '7.42', '6.97', '4.55']
于 2017-07-05T09:29:56.077 に答える
4

次のように、リスト内包表記、結合、および文字列操作を使用できます。

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]
>>> def format(l):
...     return "["+", ".join(["%.2f" % x for x in l])+"]"
... 
>>> format(theList)
'[1.34, 7.42, 6.97, 4.55]'
于 2010-05-04T00:32:36.237 に答える
3

マップ機能を利用できます

l2 = map(lambda n: "%.2f" % n, l)
于 2010-05-04T00:39:28.237 に答える
0

値を保存する必要がない場合は、これを試してください。

list = [0.34555, 0.2323456, 0.6234232, 0.45234234]
for member in list:
    form='{:.1%}'.format(member)
    print(form)

出力:

34.6%
23.2%
62.3%
45.2%
于 2018-06-04T09:48:41.257 に答える