What's the easiest way to add commas to an integer?
Possible Duplicate:
How to print number with commas as thousands separators?
例如:
1 2 | >> print numberFormat(1234) >> 1,234 |
或有内置函数在Python的这是什么?
到目前为止,还没有人提到新的
样品使用情况:
1 2 | print format(1234,",d") # -> 1,234 print"{:,d}".format(1234) # -> 1,234 |
注意:虽然这个新功能确实很方便,但实际上并不像其他一些功能所建议的那样,更难使用
1 2 | import locale locale.setlocale(locale.LC_ALL, '') # empty string for platform's default settings |
这样做之后,您就可以使用通用的
1 2 | print format(1234,"n") # -> 1,234 print"{:n}".format(1234) # -> 1,234 |
世界上大多数国家都使用句点而不是逗号,因此在许多位置设置默认区域设置(或在
1 2 | print format(1234,"n") # -> 1.234 print"{:n}".format(1234) # -> 1.234 |
基于
别忘了先适当地设置区域设置。
从Webpy
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | def commify(n): """ Add commas to an integer `n`. >>> commify(1) '1' >>> commify(123) '123' >>> commify(1234) '1,234' >>> commify(1234567890) '1,234,567,890' >>> commify(123.0) '123.0' >>> commify(1234.5) '1,234.5' >>> commify(1234.56789) '1,234.56789' >>> commify('%.2f' % 1234.5) '1,234.50' >>> commify(None) >>> """ if n is None: return None n = str(n) if '.' in n: dollars, cents = n.split('.') else: dollars, cents = n, None r = [] for i, c in enumerate(str(dollars)[::-1]): if i and (not (i % 3)): r.insert(0, ',') r.insert(0, c) out = ''.join(r) if cents: out += '.' + cents return out |
这里还有其他解决方案。
在整数上使用
这里有一些我必须写的代码来处理这个确切的问题。它将根据您的平台自动为您设置区域设置:
1 2 3 4 5 6 | try: locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') #use locale.format for commafication except locale.Error: locale.setlocale(locale.LC_ALL, '') #set to default locale (works on windows) score = locale.format('%d', player['score'], True) |