zoukankan      html  css  js  c++  java
  • Python f-String/format中的字符串对齐

    list 左对齐输出

    for line in [[1, 128, 1298039], [123388, 0, 2]]:
       ...:     print('{:>8} {:>8} {:>8}'.format(*line))
       ...:
       ...:
           1      128  1298039
      123388        0        2
    

    左右对齐

    print(
        ...:     f"{'Trades:':<15}{2034:>10}",
        ...:     f"
    {'Wins:':<15}{1232:>10}",
        ...:     f"
    {'Losses:':<15}{1035:>10}",
        ...:     f"
    {'Breakeven:':<15}{37:>10}",
        ...:     f"
    {'Win/Loss Ratio:':<15}{1.19:>10}",
        ...:     f"
    {'Mean Win:':<15}{0.381:>10}",
        ...:     f"
    {'Mean Loss:':<15}{-0.395:>10}",
        ...:     f"
    {'Mean:':<15}{0.026:>10}",
        ...: )
    Trades:              2034
    Wins:                1232
    Losses:              1035
    Breakeven:             37
    Win/Loss Ratio:      1.19
    Mean Win:           0.381
    Mean Loss:         -0.395
    Mean:               0.026
    
    In [11]:
    

    Example 1 使用 "<" 左对齐

    for line in [[1222222, "timestamp=1626749571096,values=80"], [123388, "timestamp=1626749571096,values=80"]]:
       ...:     print('{:<20} {:<50}'.format(*line))
       ...:
    1222222              timestamp=1626749571096,values=80
    123388               timestamp=1626749571096,values=80
    

    Example 2 : 使用 ">" 右对齐

    for line in [[1222222, "timestamp=1626749571096,values=80"], [123388, "timestamp=1626749571096,values=80"]]:
       ...:    ...:     print('{:>20} {:<50}'.format(*line))
       ...:
                 1222222 timestamp=1626749571096,values=80
                  123388 timestamp=1626749571096,values=80
    

    Example 3 : 使用 "^" 中间对其

    for line in [[1222222, "timestamp=1626749571096,values=80000000333"], [123388, "timestamp=1626749571096,values=802"]]:
       ...:     print('{:^20} {:^80}'.format(*line))
       ...:
          1222222                           timestamp=1626749571096,values=80000000333
           123388                               timestamp=1626749571096,values=802
    

    Example 5 : 对其方式打印list

    In [8]: names = ['Raj', 'Shivam', 'Shreeya', 'Kartik']
       ...: marks = [7, 9, 8, 5]
       ...: div = ['A', 'A', 'C', 'B']
       ...: id = [21, 52, 27, 38]
    
    In [9]: for i in range(0, 4):
       ...:     print(f"{names[i] : <10}{marks[i] : ^10}{div[i] : ^10}{id[i] : >5}")
       ...:
    Raj           7         A        21
    Shivam        9         A        52
    Shreeya       8         C        27
    Kartik        5         B        38
    
    In [10]:
    

    使用python-tabulate

    python-tabulate 支持多种格式,详细请参考github

    pip install tabulate
    
    >>> from tabulate import tabulate
    
    >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6],
    ...          ["Moon",1737,73.5],["Mars",3390,641.85]]
    >>> print(tabulate(table))
    -----  ------  -------------
    Sun    696000     1.9891e+09
    Earth    6371  5973.6
    Moon     1737    73.5
    Mars     3390   641.85
    -----  ------  -------------
    

    参考:

    https://stackoverflow.com/questions/8234445/format-output-string-right-alignment

    https://github.com/astanin/python-tabulate

    https://www.geeksforgeeks.org/string-alignment-in-python-f-string/

    不要小瞧女程序员
  • 相关阅读:
    leetcode203
    leetcode88
    leetcode219
    leetcode225
    2018-12-25-C#-使用转换语义版本号
    2018-12-25-C#-使用转换语义版本号
    2018-10-15-Winforms-可能遇到的-1000-个问题
    2018-10-15-Winforms-可能遇到的-1000-个问题
    2018-8-10-UWP-WPF-解决-xaml-设计显示异常
    2018-8-10-UWP-WPF-解决-xaml-设计显示异常
  • 原文地址:https://www.cnblogs.com/shix0909/p/15036701.html
Copyright © 2011-2022 走看看