답변:
Python 2 :
mylist = ['x', 3, 'b']
print '[%s]' % ', '.join(map(str, mylist))
Python 3에서 (여기서는 print더 이상 구문 기능이 아닌 내장 함수) :
mylist = ['x', 3, 'b']
print('[%s]' % ', '.join(map(str, mylist)))
둘 다 반환 :
[x, 3, b]
이것은 mylist의map() 각 요소에 대해 str을 호출 하는 함수를 사용하여 다음과 같이 하나의 문자열로 결합되는 새로운 문자열 목록을 생성합니다 . 그런 다음 문자열 형식화 연산자가 in 대신 in 문자열을 대체합니다 .str.join()%%s"[%s]"
map함수를 사용하여의 str각 요소 를 호출 mylist하고 새 문자열 목록을 만든 다음 str.join. 그런 다음 %문자열 형식 지정 연산자를 사용하여 in 대신 %sin 문자열을 대체합니다 "[%s]".
"[{0}]".format(", ".join(str(i) for i in mylist))
map(f, xs)(또는 imappython2.x에서) . 더 적은 바이트 코드를 실행하는 경향이 있으며 일반적으로 더 간결합니다. 확실히 해달라고 보다 훨씬 더 먹으 렴(f(x) for x in xs)f map(lambda x:..., xs)(... for x in xs)
Python3을 사용하는 경우 :
print('[',end='');print(*L, sep=', ', end='');print(']')
print(end='['); print(*l, sep=', ', end=']\n')
를 사용하는 대신 반복자를 허용하는 map기능이있는 생성기 표현식을 사용하는 것이 좋습니다 join.
def get_nice_string(list_or_iterator):
return "[" + ", ".join( str(x) for x in list_or_iterator) + "]"
다음 join은 문자열 클래스의 멤버 함수입니다 str. 하나의 인수, 즉 문자열 목록 (또는 반복자)을 취한 다음 모든 요소가 연결된 새 문자열을 반환합니다 (이 경우) ,.
", ".join( str(x) for x in list_or_iterator).join('[]')
인수에 대해 제거 할 문자가 포함 된 문자열이 뒤에 오는 인수 for translate()메서드 를 사용하여 문자열에서 원하지 않는 모든 문자를 삭제할 수 있습니다 .Nonetabledeletechars
lst = ['x', 3, 'b']
print str(lst).translate(None, "'")
# [x, 3, b]
2.6 이전 버전의 Python을 사용하는 경우 인수로 전달하는 기능이 Python 2.6까지 추가되지 않았기 때문에 대신 string모듈의 translate()함수 를 사용해야합니다 . 사용하면 다음과 같습니다.Nonetable
import string
print string.translate(str(lst), None, "'")
이 string.translate()기능을 사용하는 것은 2.6 이상에서도 작동하므로 사용하는 것이 좋습니다.
lst = ["it isn't", 3, 'b']==> ["it isnt", 3, b]그리고 또한lst = ['it isn\'t', 3, 'b']
다음은 @TokenMacGuy의 한 줄짜리 단계를 보여주는 대화식 세션입니다. 먼저 그는 map함수를 사용하여 목록의 각 항목을 문자열로 변환합니다 (실제로 그는 이전 목록의 항목을 변환하지 않고 새 목록을 만들고 있음). 그런 다음 문자열 메서드 join를 사용하여 해당 문자열을', ' 합니다. 나머지는 문자열 형식화로 매우 간단합니다. (편집 :이 인스턴스는 간단합니다. 일반적으로 문자열 형식은 다소 복잡 할 수 있습니다.)
using join은 여러 하위 문자열에서 문자열을 만드는 간단하고 효율적인 방법이며, 문자열에 문자열을 연속적으로 추가하는 것보다 훨씬 효율적입니다.
>>> mylist = ['x', 3, 'b']
>>> m = map(str, mylist)
>>> m
['x', '3', 'b']
>>> j = ', '.join(m)
>>> j
'x, 3, b'
사용하여 .format문자열 서식,
mylist = ['x', 3, 'b']
print("[{0}]".format(', '.join(map(str, mylist))))
산출:
[x, 3, b]
설명:
map목록의 각 요소를 string유형 에 매핑하는 데 사용됩니다 .,구분 기호로 문자열로 결합됩니다 .[및 ]인쇄 문에서 목록의 괄호를 표시합니다..format가장 비단뱀적인 방법을 사용 합니다. 그러나 물론 나는 의견 차이를 받아들입니다. ;)
저는 @AniMenon에서 영감을 받아보다 일반적인 파이썬 솔루션을 작성했습니다.
mylist = ['x', 3, 'b']
print('[{}]'.format(', '.join(map('{}'.format, mylist))))
format방법 만 사용합니다 . 의 추적이 없으며 str요소 형식을 미세 조정할 수 있습니다. 예를 들어, 목록의 요소로 부동 숫자가있는 경우 변환 지정자를 추가하여 형식을 조정할 수 있습니다.이 경우:.2f
mylist = [1.8493849, -6.329323, 4000.21222111]
print("[{}]".format(', '.join(map('{:.2f}'.format, mylist))))
출력은 상당히 괜찮습니다.
[1.85, -6.33, 4000.21]
print(["Sam"])통화repr("Sam")반환,'Sam'(따옴표 포함), 당신이 달리 전화print("Sam")와 파이썬 통화를str("Sam")하는 수익률Sam(따옴표없이). 자세한 내용 은strandrepr또는 Pythonstr과lists의 차이점을 참조하십시오 .