목록과 함께 Python 문자열 형식화 사용
s
Python 2.6.5 %s
에서 list의 항목 수와 일치 하는 다양한 토큰 수를 갖는 문자열 을 생성 합니다 x
. 형식이 지정된 문자열을 작성해야합니다. 다음은 작동하지 않지만 수행하려는 작업을 나타냅니다. 이 예에는 3 개의 %s
토큰이 있고 목록에는 3 개의 항목이 있습니다.
s = '%s BLAH %s FOO %s BAR'
x = ['1', '2', '3']
print s % (x)
출력 문자열은 다음과 같습니다.
1 BLAH 2 FOO 3 BAR
print s % tuple(x)
대신에
print s % (x)
파이썬 의 포맷 방법을 살펴보아야합니다 . 그런 다음 다음과 같이 형식 지정 문자열을 정의 할 수 있습니다.
>>> s = '{0} BLAH {1} BLAH BLAH {2} BLAH BLAH BLAH'
>>> x = ['1', '2', '3']
>>> print s.format(*x)
'1 BLAH 2 BLAH BLAH 3 BLAH BLAH BLAH'
이 리소스 페이지 에 따라 x의 길이가 다른 경우 다음을 사용할 수 있습니다.
', '.join(['%.2f']*len(x))
목록에서 각 요소에 대한 자리 표시자를 만듭니다 x
. 다음은 그 예입니다.
x = [1/3.0, 1/6.0, 0.678]
s = ("elements in the list are ["+', '.join(['%.2f']*len(x))+"]") % tuple(x)
print s
>>> elements in the list are [0.33, 0.17, 0.68]
이 멋진 것에 대해 방금 배웠기 때문에 (형식 문자열 내에서 목록으로 인덱싱)이 오래된 질문에 추가하고 있습니다.
s = '{x[0]} BLAH {x[1]} FOO {x[2]} BAR'
x = ['1', '2', '3']
print s.format (x=x)
그러나 나는 여전히 슬라이싱 (형식 문자열 내부)을 수행하는 방법을 찾지 못했고 '"{x[2:4]}".format...
누군가 아이디어가 있는지 알아 내고 싶지만 단순히 그렇게 할 수 없다고 생각합니다.
여기에 한 줄이 있습니다. 목록에서 print () 형식을 사용하는 것에 대한 약간의 즉석 답변.
이건 어때 : (python 3.x)
sample_list = ['cat', 'dog', 'bunny', 'pig']
print("Your list of animals are: {}, {}, {} and {}".format(*sample_list))
format () 사용에 대한 문서를 여기에서 읽으십시오 .
이것은 재미있는 질문이었습니다! 가변 길이 목록에 대해 이를 처리하는 또 다른 방법 은 .format
메소드 및 목록 압축 해제를 최대한 활용하는 함수를 빌드하는 것입니다 . 다음 예에서는 멋진 서식을 사용하지 않지만 필요에 맞게 쉽게 변경할 수 있습니다.
list_1 = [1,2,3,4,5,6]
list_2 = [1,2,3,4,5,6,7,8]
# Create a function that can apply formatting to lists of any length:
def ListToFormattedString(alist):
# Create a format spec for each item in the input `alist`.
# E.g., each item will be right-adjusted, field width=3.
format_list = ['{:>3}' for item in alist]
# Now join the format specs into a single string:
# E.g., '{:>3}, {:>3}, {:>3}' if the input list has 3 items.
s = ','.join(format_list)
# Now unpack the input list `alist` into the format string. Done!
return s.format(*alist)
# Example output:
>>>ListToFormattedString(list_1)
' 1, 2, 3, 4, 5, 6'
>>>ListToFormattedString(list_2)
' 1, 2, 3, 4, 5, 6, 7, 8'
참고URL : https://stackoverflow.com/questions/7568627/using-python-string-formatting-with-lists
'programing' 카테고리의 다른 글
UITableView를 편집하는 동안“-”(삭제) 버튼을 숨기는 방법이 있습니까? (0) | 2020.08.29 |
---|---|
Xcode에서 "사용하지 않는 변수"경고를 어떻게 제거 할 수 있습니까? (0) | 2020.08.29 |
파일에서 RSA 공개 키로드 (0) | 2020.08.29 |
phpMyadmin의 최대 실행 시간 (0) | 2020.08.29 |
Xcode 6-명령 줄에서 시뮬레이터 시작 (0) | 2020.08.29 |