2017-12-24 6 views
1

가정하자 나는 다음과 같은 목록이 있습니다목록 이해

temp = ['Ok', 'Whoa. Robot?'] 

을 나는 지능형리스트에 대해이 작업을 수행하기 위해 노력하고있어

"1) 'Ok', 2) 'Whoa. Robot?'" 

과 같은 문자열을 얻는 방법 . 나는 분명히 사용하여 가입 할 수 있습니다 :

" ".join(temp) 

나는 상당히 추한 방법으로 루프에서 작업을 수행 할 수 있습니다 지능형리스트와 한 번에 그것을 할 수있는 파이썬 방법은

mystring = "" 
temp = ['Ok', 'Whoa. Robot?'] 
for i in range(len(temp)): 
    mystring += str(i) + ") " + temp[i] + " " 

있습니까? 이 부분 주위에 따옴표를 얻을 수 있지만, 따옴표 자체를 포함하는 경우 따옴표가 다른 단어 나 문자열의 내용에 따라 변경 될 수 있도록

답변

6
mystring = ', '.join(["{}) {!r}".format(i, s) for i, s in enumerate(temp, 1)]) 

{!r} 변환은 문자열의 repr() 표현을 생성합니다.

+0

당신은'join' 내부에리스트 comp bracket을 필요로하지 않습니다. 발전기를 평가할 것입니다. – James

+1

@ 제임스 예 : [이 스레드] (https://stackoverflow.com/questions/37782066/list-vs-generator-comprehension-speed-with-joinfunction). 'str.join'은 생성자보다리스트가 빠르다는 함수 중 하나입니다. – schwobaseggl

+0

와우. 정말 매력적입니다. 감사합니다. – James