[PYTHON] 숫자에 '소수 자리 표시'천 단위 구분 기호 추가
PYTHON숫자에 '소수 자리 표시'천 단위 구분 기호 추가
파이썬에서 1000000에서 1.000.000까지 어떻게 포맷합니까? 여기서 '.' 십진 부호 1000 자리 구분 기호입니다.
해결법
-
==============================
1.천 단위 구분 기호를 추가하려면 다음과 같이 작성할 수 있습니다.
천 단위 구분 기호를 추가하려면 다음과 같이 작성할 수 있습니다.
>>> '{0:,}'.format(1000000) '1,000,000'
그러나 파이썬 2.7 이상에서만 작동합니다.
형식 문자열 구문을 참조하십시오.
이전 버전에서는 locale.format ()을 사용할 수 있습니다.
>>> import locale >>> locale.setlocale(locale.LC_ALL, '') 'en_AU.utf8' >>> locale.format('%d', 1000000, 1) '1,000,000'
locale.format ()을 사용하면 locale의 천 단위 구분 기호를 사용한다는 이점이 있습니다.
>>> import locale >>> locale.setlocale(locale.LC_ALL, 'de_DE.utf-8') 'de_DE.utf-8' >>> locale.format('%d', 1000000, 1) '1.000.000'
-
==============================
2.나는 그것을 정말로 이해하지 못했다. 그러나 여기에 내가 이해하는 것이있다.
나는 그것을 정말로 이해하지 못했다. 그러나 여기에 내가 이해하는 것이있다.
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'
-
==============================
3.그냥 여기에 조금 대답을 확장 :)
그냥 여기에 조금 대답을 확장 :)
나는 천 단위 구분 기호를 가지고 부동 소수점 숫자의 정밀도를 제한해야했습니다.
다음 형식 문자열을 사용하면이 작업을 수행 할 수 있습니다.
> my_float = 123456789.123456789 > "{:0,.2f}".format(my_float) '123,456,789.12'
format () - 지정자의 미니 언어를 설명합니다.
[[fill]align][sign][#][0][width][,][.precision][type]
출처 : https://www.python.org/dev/peps/pep-0378/#current-version-of-the-mini-language
-
==============================
4.itertools를 사용하면 유연성이 향상됩니다.
itertools를 사용하면 유연성이 향상됩니다.
>>> from itertools import zip_longest >>> num = "1000000" >>> sep = "." >>> places = 3 >>> args = [iter(num[::-1])] * places >>> sep.join("".join(x) for x in zip_longest(*args, fillvalue=""))[::-1] '1.000.000'
-
==============================
5.Mikel의 답변을 바탕으로 필자는 matplotlib 플롯에서 이와 같은 솔루션을 구현했습니다. 나는 그것이 도움이 될지도 모른다라고 생각하는 일부 사람들을 생각했다 :
Mikel의 답변을 바탕으로 필자는 matplotlib 플롯에서 이와 같은 솔루션을 구현했습니다. 나는 그것이 도움이 될지도 모른다라고 생각하는 일부 사람들을 생각했다 :
ax=plt.gca() ax.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, loc: locale.format('%d', x, 1)))
-
==============================
6.다음은 단지 다른 대답입니다. 분할 연산자를 파이썬과 이상한 논리를 통해 사용할 수 있습니다. 여기에 코드가있다.
다음은 단지 다른 대답입니다. 분할 연산자를 파이썬과 이상한 논리를 통해 사용할 수 있습니다. 여기에 코드가있다.
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
-
==============================
7.이상한 사람은 정규식에 대한 간단한 해결책을 언급하지 않았다.
이상한 사람은 정규식에 대한 간단한 해결책을 언급하지 않았다.
import re print(re.sub(r'(?<!^)(?=(\d{3})+$)', r'.', "12345673456456456"))
다음 출력을 제공합니다.
12.345.673.456.456.456
쉼표 앞에있는 숫자 만 분리하려는 경우에도 작동합니다.
re.sub(r'(?<!^)(?=(\d{3})+,)', r'.', "123456734,56456456")
제공 :
123.456.734,56456456
regex는 Lookahead를 사용하여 주어진 위치 이후의 자릿수가 3으로 나눌 수 있는지 확인합니다.
from https://stackoverflow.com/questions/5513615/add-decimal-mark-thousands-separators-to-a-number by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] LIKE에서 와일드 카드를 사용하는 Python SQLite 매개 변수 대체 (0) | 2018.10.14 |
---|---|
[PYTHON] 문자열에서 터플을 파싱 하시겠습니까? (0) | 2018.10.14 |
[PYTHON] 파이썬 : 특정 입력이 얻어 질 때까지 프로그램을 반복하는 법? (0) | 2018.10.14 |
[PYTHON] Selenium Compound 클래스 이름은 허용되지 않습니다. (0) | 2018.10.14 |
[PYTHON] 문자열 목록의 모든 요소 제거 (0) | 2018.10.14 |