2017-04-15 2 views
-1

에서 목록의 형식을 변경하려고하지만 난 몇 가지 다른 일을 시도내가</p> <pre><code>[['b c', 'd e', 'f'], ['b', 'c', 'd', 'e', 'f'], ['b c', 'd', 'b', 'e', 'g', 'f']] </code></pre> <p>같은 것을 가지고 파이썬

['(b c) d e f', 'b c d e f', '(b c) d b e g f'] 

로 변경하려고하지만 괄호는 엉망하는 내 접근. 나는 괄호없이 문자열을 결합 할 수있었습니다. 파이썬에서 이것을 쉽게 수행 할 수있는 방법이 있습니까?

+4

무엇 괄호 표시해야 할 때를 결정하는 논리와 때해야하지? 특히'd e'가 첫 번째 목록에서 괄호로 묶이지 않은 이유에 대해 혼란 스럽습니다. – Blckknght

+1

첫 번째 하위 목록에서 '(b c)'가 괄호 안에 있지만'd '가 아닌 이유는 분명하지 않습니다. –

답변

0

이 나를 위해 작동합니다

new_list = [" ".join(words if not " " in words else "({})".format(words) for words in seq) for seq in original_list] 

그러나 괄호에 대한 논리를 가정이 결합되는 문자열의 하나 개의 공간이있을 때마다가 추가되는 것입니다. 그러나 그것은 당신의 예가 틀렸다는 것을 의미합니다. parentheres 각 하위 목록의 첫 번째 문자열 만 추가해야하는 경우에, 당신은 조건에서 계산을 포함해야한다 :

new_list = [" ".join(words if not " " in words and i == 0 else "({})".format(words) for i, words in enumerate(seq)) for seq in original_list] 
관련 문제