2012-11-03 3 views
24
LIST = ['Python','problem','whatever'] 
print(LIST) 

나는파이썬에서 대괄호를 목록에서 제거하는 방법은 무엇입니까? 나는이 프로그램을 실행하면

[Python, problem, whatever] 

출력에서 ​​해당 대괄호를 제거하는 것이 가능거야?

+0

'지도'가 그래서

print ', '.join(map(str, LIST)) 

^map는 C 코드 'str (i) for iLIST' 대신에'map'은 C 코드이므로 더 빠릅니다. – yedpodtrzitko

+0

리스트 계산은 계산 상 비싼 스택 프레임을 생성하지 않기 때문에 실제로 파이썬 2에서 map보다 빠릅니다. 지도가 그것을 만듭니다. 그러나이 동작은 같은 이름의 변수가 이전에 선언 된 경우 리 바인딩을 사용하여 목록 이해의 변수가 누출 될 수 있다는 점에서 문제가됩니다. 파이썬 3의 목록 이해는 생성자 표현식과 일치하도록 스택 프레임을 생성하기 위해 변경되기 때문에 그러한 문제를 나타내지 않습니다. –

답변

51

직접 목록을 인쇄하는 대신 문자열로 변환 할 수 있습니다 : 목록의 요소가 문자열이 아닌 경우,

print(", ".join(LIST)) 

을 당신이 따옴표를 원하는 경우 (하나 repr를 사용하여 문자열로 변환 할 수 있습니다 (문자열 주위) 나 str 당신이 할 경우되지 않음), 그래서 같은 :

1, 'foo', 3.5, {'hello': 'bye'} 
,369 : 출력를 제공

LIST = [1, "foo", 3.5, { "hello": "bye" }] 
print(", ".join(repr(e) for e in LIST)) 

+0

감사합니다. 그러나 목록에 숫자가 있으면 어떻게됩니까? –

+1

@ GregorGajič ",".join (str (i) for LIST) – bereal

+0

@ GregorGajič : 답변이 업데이트되었습니다. –

18

예, 몇 가지 방법이 있습니다. 예를 들어, 당신은 문자열 목록을 변환 한 후 첫 번째와 마지막 문자를 제거 할 수 있습니다 목록 만 문자열이 포함 된 경우

l = ['a', 2, 'c'] 
print str(l)[1:-1] 
'a', 2, 'c' 

을 이미 가지고 같은 당신은 당신이 join 방법을 사용할 수 있습니다 너무 다음 따옴표를 제거하려면 라고 말했다. 당신이 목록에서 번호가있는 경우

10

, 각 요소에 str을 적용 map을 사용할 수 있습니다 : 그것은보다 빠른 str(i) for i in LIST 내가 제안

5
def listToStringWithoutBrackets(list1): 
    return str(list1).replace('[','').replace(']','') 
관련 문제