首頁 >後端開發 >Python教學 >如何在Python中實現列印字串的固定寬度對齊?

如何在Python中實現列印字串的固定寬度對齊?

Linda Hamilton
Linda Hamilton原創
2024-11-05 22:32:02814瀏覽

How can I achieve fixed-width alignment of printed strings in Python?

以固定寬度對齊方式列印字串

在程式設計中,為了清晰和視覺組織,通常需要在固定列中對齊字串。本文探討如何使用 Python 中的高階格式化技術來實現此目的。

問題:對齊不均勻的字串值

考慮以下程式碼,程式碼計算給定字串中所有排列的頻率:

# Original code to generate permutations
...

# Printing results
unique = sorted(set(el))
for prefix in unique:
    if prefix != "":
        print("value  ", prefix, "- num of occurrences =   ", string.count(str(prefix)))

但是,由於字串長度不同,輸出可能會出現未對齊的情況:

value   a - num of occurrences =    1
value   ab - num of occurrences =    1
value   abc - num of occurrences =    1
value   b - num of occurrences =    1
value   bc - num of occurrences =    1
value   bcd - num of occurrences =    1
value   c - num of occurrences =    1
value   cd - num of occurrences =    1
value   d - num of occurrences =    1

使用str.format的解決方案

要對齊輸出,我們可以使用str具有特定格式說明符的.format 方法:

# Using str.format for alignment
print("{0: <5}".format("value  ") +
      "{1: >15}".format(prefix) +
      "- num of occurrences =   " +
      "{2: <5}".format(string.count(str(prefix))))

格式說明符:

  • <5:左對齊字串5 個字元寬度內。
  • >15:在 15 個字元寬度內右對齊字串。

編輯 1: 「{0: <5}」中的「0」指的是傳遞給 str.format() 的參數的索引。

編輯2:Python 3 引入f-string 作為str.format 的簡潔替代品:

# Using f-strings for alignment
print(f"{'value  ':<5}" +
      f"{prefix:>15}" +
      "- num of occurrences =   " +
      f"{string.count(str(prefix)):<5}")

優點:

  • 增強可讀性和組織性。
  • 靈活性指定對齊方式和寬度。
  • 與 Python 2 和 Python 3 的兼容性。

以上是如何在Python中實現列印字串的固定寬度對齊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn