是否有格式化由map函数生成的字符串的方法



这是我的代码:

menu=[['1.PEPPERONI  ' ,                              8.50],
['2.SIMPLY CHEESE  ' ,                           8.50],
['3.GARLIC CHEESE  ' ,                           8.50],
['4.HAM & CHEESE  ' ,                            8.50],
['5.VEG TRIO ' ,                                 8.50],
['6.BEEF & ONION  ' ,                            8.50],
['7.HAWAIIAN  ' ,                                8.50],
['8.APRICOT CHICKEN  ' ,                         13.50],
['9.MEATLOVERS  ' ,                              13.50],
['10.PERI-PERI CHICKEN  ' ,                      13.50],
['11.PHILLY STEAK AND CHEESE  ' ,                13.50],
['12.CHICKEN & CRANBERRY  ' ,                    13.50]]
for i in menu:
o='$'.join(map(str, i))
print(o)

我使用地图功能将我的菜单2D列表变成了一个真实的菜单(我正试图将我的2D列表菜单变成一个基于文本的真实菜单,价格必须全部垂直格式化(。字符串结果不包含括号或逗号,这很好,但我需要价格垂直格式化。简而言之,结果应该看起来像一个真正的菜单,并且必须易于客户阅读。有什么方法可以格式化它吗?

为什么要使用mapjoin?使用格式规范迷你语言简单地左右对齐更简单

for i in menu:
o = f"{i[0]:<30}${i[1]:>5.2f}"
print(o)

说明:

  • f"...":表示f字符串
  • {i[0]:<30}:左对齐i[0],使其长度为30
  • {i[1]:>5.2f}
    • f=>将i[1]格式化为浮点
    • CCD_ 9=>小数点后2位
    • >5:将生成的字符串右对齐为长度5

输出:

1.PEPPERONI                   $ 8.50
2.SIMPLY CHEESE               $ 8.50
3.GARLIC CHEESE               $ 8.50
4.HAM & CHEESE                $ 8.50
5.VEG TRIO                    $ 8.50
6.BEEF & ONION                $ 8.50
7.HAWAIIAN                    $ 8.50
8.APRICOT CHICKEN             $13.50
9.MEATLOVERS                  $13.50
10.PERI-PERI CHICKEN          $13.50
11.PHILLY STEAK AND CHEESE    $13.50
12.CHICKEN & CRANBERRY        $13.50

使用格式字符串语法为的str.format

menu=[['1.PEPPERONI  ' ,                              8.50],
['2.SIMPLY CHEESE  ' ,                           8.50],
['3.GARLIC CHEESE  ' ,                           8.50],
['4.HAM & CHEESE  ' ,                            8.50],
['5.VEG TRIO ' ,                                 8.50],
['6.BEEF & ONION  ' ,                            8.50],
['7.HAWAIIAN  ' ,                                8.50],
['8.APRICOT CHICKEN  ' ,                         13.50],
['9.MEATLOVERS  ' ,                              13.50],
['10.PERI-PERI CHICKEN  ' ,                      13.50],
['11.PHILLY STEAK AND CHEESE  ' ,                13.50],
['12.CHICKEN & CRANBERRY  ' ,                    13.50]]
for name, price in menu:
print('{:<50} ${:0.2f}'.format(name, price))

打印:

1.PEPPERONI                                        $8.50
2.SIMPLY CHEESE                                    $8.50
3.GARLIC CHEESE                                    $8.50
4.HAM & CHEESE                                     $8.50
5.VEG TRIO                                         $8.50
6.BEEF & ONION                                     $8.50
7.HAWAIIAN                                         $8.50
8.APRICOT CHICKEN                                  $13.50
9.MEATLOVERS                                       $13.50
10.PERI-PERI CHICKEN                               $13.50
11.PHILLY STEAK AND CHEESE                         $13.50
12.CHICKEN & CRANBERRY                             $13.50

最新更新