DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on

format_map in Python (6)

Buy Me a Coffee

*Memo:

:[f][a][s][z][#][0][w][g][.p][t] can format a string with format_map() as shown below:

<Format a string with 'float' input by or not by 'g' or 'G'>:

v = {'k':123456.78912} # | 11 |  print(v['k']) # 123456.78912 # | 11 |  print('"{k:.20g}"'.format_map(v)) print('"{k:.20G}"'.format_map(v)) print('"{k:.20}"'.format_map(v)) # "123456.78912000000128" # | 20 |  print('"{k:.18g}"'.format_map(v)) print('"{k:.18G}"'.format_map(v)) print('"{k:.18}"'.format_map(v)) # "123456.789120000001" # | 18 |  print('"{k:.17g}"'.format_map(v)) print('"{k:.17G}"'.format_map(v)) print('"{k:.17}"'.format_map(v)) print('"{k:.11g}"'.format_map(v)) print('"{k:.11G}"'.format_map(v)) print('"{k:.11}"'.format_map(v)) print('"{k:}"'.format_map(v)) print('"{k}"'.format_map(v)) # "123456.78912" # | 11 |  print('"{k:.10g}"'.format_map(v)) print('"{k:.10G}"'.format_map(v)) print('"{k:.10}"'.format_map(v)) # "123456.7891" # | 10 |  print('"{k:.9g}"'.format_map(v)) print('"{k:.9G}"'.format_map(v)) print('"{k:.9}"'.format_map(v)) # "123456.789" # | 9 |  print('"{k:.8g}"'.format_map(v)) print('"{k:.8G}"'.format_map(v)) print('"{k:.8}"'.format_map(v)) # "123456.79" # | 8 |  print('"{k:.7g}"'.format_map(v)) print('"{k:.7G}"'.format_map(v)) print('"{k:.7}"'.format_map(v)) # "123456.8" # | 7 |  print('"{k:.6g}"'.format_map(v)) print('"{k:.6G}"'.format_map(v)) print('"{k:g}"'.format_map(v)) print('"{k:G}"'.format_map(v)) # "123457" # | 6 |  print('"{k:.6}"'.format_map(v)) # "1.23457e+05" # | 6 |  print('"{k:.5g}"'.format_map(v)) print('"{k:.5}"'.format_map(v)) # "1.2346e+05" # | 5 |  print('"{k:.5G}"'.format_map(v)) # "1.2346E+05" # | 5 |  print('"{k:.4g}"'.format_map(v)) print('"{k:.4}"'.format_map(v)) # "1.235e+05" # | 4 |  print('"{k:.4G}"'.format_map(v)) # "1.235E+05" # | 4 |  print('"{k:.3g}"'.format_map(v)) print('"{k:.3}"'.format_map(v)) # "1.23e+05" # |3 |  print('"{k:.3G}"'.format_map(v)) # "1.23E+05" # |3 |  print('"{k:.2g}"'.format_map(v)) print('"{k:.2}"'.format_map(v)) # "1.2e+05" # |2|  print('"{k:.2G}"'.format_map(v)) # "1.2E+05" # |2|  print('"{k:.1g}"'.format_map(v)) print('"{k:.1}"'.format_map(v)) print('"{k:.0g}"'.format_map(v)) print('"{k:.0}"'.format_map(v)) # "1e+05"  print('"{k:.1G}"'.format_map(v)) print('"{k:.0G}"'.format_map(v)) # "1E+05"  print('"{k:#.1g}"'.format_map(v)) print('"{k:#.1}"'.format_map(v)) print('"{k:#.0g}"'.format_map(v)) print('"{k:#.0}"'.format_map(v)) # "1.e+05"  print('"{k:#.1G}"'.format_map(v)) print('"{k:#.0G}"'.format_map(v)) # "1.E+05"  print('"{k:,.20g}"'.format_map(v)) print('"{k:,.20G}"'.format_map(v)) print('"{k:,.20}"'.format_map(v)) # "123,456.78912000000128" # | 20 |  print('"{k:,g}"'.format_map(v)) print('"{k:,G}"'.format_map(v)) # "123,457" # | 6 |  print('"{k:,}"'.format_map(v)) # "123,456.78912" # | 11 |  print('"{k:_.20g}"'.format_map(v)) print('"{k:_.20G}"'.format_map(v)) # "123_456.78912000000128" # | 20 |  print('"{k:_g}"'.format_map(v)) print('"{k:_G}"'.format_map(v)) # "123_457" # | 6 |  print('"{k:_}"'.format_map(v)) # "123_456.78912" # | 11 | 
Enter fullscreen mode Exit fullscreen mode
print("{k1:g} {k2:g}".format_map({'k1':float('nan'), 'k2':float('inf')})) # nan inf  print("{k1:G} {k2:G}".format_map({'k1':float('nan'), 'k2':float('inf')})) # NAN INF 
Enter fullscreen mode Exit fullscreen mode

<Format a string with Decimal() input by or not by 'g' or 'G'>:

from decimal import Decimal v = {'k':Decimal('123456.78912')} # | 11 |  print(v['k']) # 123456.78912 # | 11 |  print('"{k:.20g}"'.format_map(v)) print('"{k:.20G}"'.format_map(v)) print('"{k:.20}"'.format_map(v)) print('"{k:.18g}"'.format_map(v)) print('"{k:.18G}"'.format_map(v)) print('"{k:.18}"'.format_map(v)) print('"{k:.17g}"'.format_map(v)) print('"{k:.17G}"'.format_map(v)) print('"{k:.17}"'.format_map(v)) print('"{k:.11g}"'.format_map(v)) print('"{k:.11G}"'.format_map(v)) print('"{k:.11}"'.format_map(v)) print('"{k:g}"'.format_map(v)) print('"{k:G}"'.format_map(v)) print('"{k:}"'.format_map(v)) print('"{k}"'.format_map(v)) # "123456.78912" # | 11 |  print('"{k:.10g}"'.format_map(v)) print('"{k:.10G}"'.format_map(v)) print('"{k:.10}"'.format_map(v)) # "123456.7891" # | 10 |  print('"{k:.9g}"'.format_map(v)) print('"{k:.9G}"'.format_map(v)) print('"{k:.9}"'.format_map(v)) # "123456.789" # | 9 |  print('"{k:.8g}"'.format_map(v)) print('"{k:.8G}"'.format_map(v)) print('"{k:.8}"'.format_map(v)) # "123456.79" # | 8 |  print('"{k:.7g}"'.format_map(v)) print('"{k:.7G}"'.format_map(v)) print('"{k:.7}"'.format_map(v)) # "123456.8" # | 7 |  print('"{k:.6g}"'.format_map(v)) print('"{k:.6G}"'.format_map(v)) print('"{k:.6}"'.format_map(v)) # "123457" # | 6 |  print('"{k:.5g}"'.format_map(v)) # "1.2346e+5" # | 5 |  print('"{k:.5G}"'.format_map(v)) print('"{k:.5}"'.format_map(v)) # "1.2346E+5" # | 5 |  print('"{k:.4g}"'.format_map(v)) # "1.235e+5" # | 4 |  print('"{k:.4G}"'.format_map(v)) print('"{k:.4}"'.format_map(v)) # "1.235E+5" # | 4 |  print('"{k:.3g}"'.format_map(v)) # "1.23e+5" # |3 |  print('"{k:.3G}"'.format_map(v)) print('"{k:.3}"'.format_map(v)) # "1.23E+5" # |3 |  print('"{k:.2g}"'.format_map(v)) # "1.2e+5" # |2|  print('"{k:.2G}"'.format_map(v)) print('"{k:.2}"'.format_map(v)) # "1.2E+5" # |2|  print('"{k:.1g}"'.format_map(v)) print('"{k:.0g}"'.format_map(v)) # "1e+5"  print('"{k:.1G}"'.format_map(v)) print('"{k:.1}"'.format_map(v)) print('"{k:.0G}"'.format_map(v)) print('"{k:.0}"'.format_map(v)) # "1E+5"  print('"{k:#.1g}"'.format_map(v)) print('"{k:#.0g}"'.format_map(v)) # "1.e+5"  print('"{k:#.1G}"'.format_map(v)) print('"{k:#.1}"'.format_map(v)) print('"{k:#.0G}"'.format_map(v)) print('"{k:#.0}"'.format_map(v)) # "1.E+5"  print('"{k:,.20g}"'.format_map(v)) print('"{k:,.20G}"'.format_map(v)) print('"{k:,.20}"'.format_map(v)) print('"{k:,g}"'.format_map(v)) print('"{k:,G}"'.format_map(v)) print('"{k:,}"'.format_map(v)) # "123,456.78912" # | 11 |  print('"{k:_.20g}"'.format_map(v)) print('"{k:_.20G}"'.format_map(v)) print('"{k:_.20}"'.format_map(v)) print('"{k:_g}"'.format_map(v)) print('"{k:_G}"'.format_map(v)) print('"{k:_}"'.format_map(v)) # ValueError: invalid format string 
Enter fullscreen mode Exit fullscreen mode
from decimal import Decimal print('"{k1:g} {k2:g}"'.format_map({'k1':Decimal(value=float('nan')), 'k2':Decimal(value=float('inf'))})) print('"{k1:G} {k2:G}"'.format_map({'k1':Decimal(value=float('nan')), 'k2':Decimal(value=float('inf'))})) # "NaN Infinity" 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)