58

Python でフォーマット1000000するにはどうすればよいですか? 1.000.000どこ '。' 小数点桁区切り記号です。

4

9 に答える 9

116

桁区切り記号を追加する場合は、次のように記述できます。

>>> '{0:,}'.format(1000000)
'1,000,000'

ただし、Python 2.7 以降でのみ機能します。

フォーマット文字列の構文を参照してください。

古いバージョンでは、locale.format()を使用できます:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'en_AU.utf8'
>>> locale.format('%d', 1000000, 1)
'1,000,000'

使用することの追加の利点はlocale.format()、ロケールの千単位の区切り記号を使用することです。

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'de_DE.utf-8')
'de_DE.utf-8'
>>> locale.format('%d', 1000000, 1)
'1.000.000'
于 2011-04-01T13:02:09.467 に答える
20

私はそれを本当に理解していませんでした。しかし、これが私が理解していることです:

1123000を1,123,000に変換したいとします。次の形式を使用してこれを行うことができます。

http://docs.python.org/release/3.1.3/whatsnew/3.1.html#pep-378-format-specifier-for-thousands-separator

例:

>>> format(1123000,',d')
'1,123,000'
于 2011-04-01T12:56:58.763 に答える
1

ミケルの答えを参考にして、私のmatplotlibプロットに彼のソリューションをこのように実装しました。私はそれが役立つと思う人もいると思いました:

ax=plt.gca()
ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, loc: locale.format('%d', x, 1)))
于 2018-01-18T13:52:05.630 に答える
0

ここでは、代替の回答のみを示します。Pythonで分割演算子を使用し、いくつかの奇妙なロジックを使用できますコードは次のとおりです

i=1234567890
s=str(i)
str1=""
s1=[elm for elm in s]
if len(s1)%3==0:
    for i in range(0,len(s1)-3,3):
        str1+=s1[i]+s1[i+1]+s1[i+2]+"."
    str1+=s1[i]+s1[i+1]+s1[i+2]
else:
    rem=len(s1)%3
    for i in range(rem):
        str1+=s1[i]
    for i in range(rem,len(s1)-1,3):
        str1+="."+s1[i]+s1[i+1]+s1[i+2]

print str1

出力

1.234.567.890
于 2016-07-05T10:54:20.007 に答える