python - 如何左对齐和分隔此打印语句中某些值的输出?

标签 python

我目前有以下代码生成如下所示的输出:

MENU = [["Hawaiian", 8.50], ["Pepperoni", 8.50], ["Veg Trio", 8.50], ["Simply Cheese", 8.50], ["Meat Lovers", 8.50], ["Ham & Cheese", 8.50], ["BBQ Italian Sausage", 8.50],
    ["Loaded Supreme", 13.50], ["Chicken Fajita", 13.50], ["Apricot Chicken", 13.50], ["Garlic Prawn", 13.50], ["Chicken Cranberry", 13.50]]

print("\nWe sell the following pizzas.")
for i, pizza in enumerate(MENU):
    print("{}: {}: ${:.2f}".format(str(i+1).zfill(2), MENU[i][0], MENU[i][1]))

输出:

Output of this code

如何使所有价格都在它们自己的“列”中并左对齐?我已经在此处发布的类似问题的答案中尝试了一些方法,但我无法实现我想要实现的目标。

我已经尝试使用我在此处找到的方法,但他们所做的只是将冒号和价格之间的差距扩大每个单独列的相同数量,当然这不会使它们全部成行上。

我只是在学习,所以非常感谢任何帮助!

最佳答案

您可以查找名称最长的 Pizza,然后在名称和价格之间为较短的名称填充空格:

MENU = [["Hawaiian", 8.50], ["Pepperoni", 8.50], ["Veg Trio", 8.50], ["Simply Cheese", 8.50], ["Meat Lovers", 8.50], ["Ham & Cheese", 8.50], ["BBQ Italian Sausage", 8.50],
    ["Loaded Supreme", 13.50], ["Chicken Fajita", 13.50], ["Apricot Chicken", 13.50], ["Garlic Prawn", 13.50], ["Chicken Cranberry", 13.50]]

# Get a list of the lengths of the pizza names
menu_name_lengths = [len(k[0]) for k in MENU]

# Get the length of the longest name
max_length = max(menu_name_lengths)

# (max_length-len(pizza[0])) gives the number of spaces to fill in the gap
for i, pizza in enumerate(MENU):
    print("{} {}:{} ${:.2f}".format(str(i+1).zfill(2), pizza[0], " "*(max_length-len(pizza[0])), pizza[1]))

打印出来:

01 Hawaiian:            $8.50
02 Pepperoni:           $8.50
03 Veg Trio:            $8.50
04 Simply Cheese:       $8.50
05 Meat Lovers:         $8.50
06 Ham & Cheese:        $8.50
07 BBQ Italian Sausage: $8.50
08 Loaded Supreme:      $13.50
09 Chicken Fajita:      $13.50
10 Apricot Chicken:     $13.50
11 Garlic Prawn:        $13.50
12 Chicken Cranberry:   $13.50

关于python - 如何左对齐和分隔此打印语句中某些值的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46192109/

相关文章:

python - 访问 wlst 中 bool 值的 MBean

python - 函数 python 调用后未返回内存

python - 如何找到 N 个数字,其总和最接近 K 但在多个列上?

python - 在 C++ 程序中编译和链接 Python 是否意味着目标用户不需要安装 python?

python - 在 os.walk() 中使用 os.remove() for 循环返回 FileNotFoundError

python - python 中矩阵的索引和切片

python - 来自官方 Github 的 ScrapyJS 示例未运行

python - 如何在使用python匹配条件后从列表的开始迭代开始for循环

python - 标准 TensorFlow 格式的 Unicode

python - 如何关闭当前窗口并同时打开一个新窗口?