>  기사  >  백엔드 개발  >  Python에서 인쇄된 문자열의 고정 너비 정렬을 어떻게 달성할 수 있나요?

Python에서 인쇄된 문자열의 고정 너비 정렬을 어떻게 달성할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-05 22:32:02727검색

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-문자열을 str.format의 간결한 대안으로 사용:

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

    장점:

    • 향상된 가독성 및 구성.
    • 유연성 정렬 및 너비 지정.
    • Python 2 및 Python 3 모두와 호환됩니다.

    위 내용은 Python에서 인쇄된 문자열의 고정 너비 정렬을 어떻게 달성할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.