2012-04-10 5 views
1

에 매 4 문자열을 한 가입 : 다양한 자본과 lowercases으로,나는 목록은 다음과 같이 목록

['Ww','Aa','Bb','Cc','ww','AA','BB','CC'] 

을 그리고 같은 패턴으로 계속. 내가하고 싶은 일은이 목록의 네 항목을 모두 합치는 것입니다. 결과적으로 새로운 목록 (위에 주어진 것)은 다음과 같습니다.

['WwAaBbCc', "wwAABBCC'] 

어떻게하면됩니까?

+4

무엇 제목은 질문 할 필요가 있는가? –

+0

제목을 편집했습니다. 나는 다른 것을 물어보고 마음을 바꿨다. –

답변

4
>>> L = ['Ww','Aa','Bb','Cc','ww','AA','BB','CC'] 
>>> [''.join(x) for x in zip(*[iter(L)] * 4)] 
['WwAaBbCc', 'wwAABBCC'] 
+0

좋은데, 왜 map (''join, zip (* [iter (L)] * 4))'? – jamylak

+0

@jamylak : LC는'map()'보다 선호된다. 어떤 이유로 든 –

+0

나는 그것을 좋아한다 : D 어쨌든 이것이 내가 좋아하는 방법이다. 나는'map'을 좋아한다. – jamylak

3
my_list = ['Ww','Aa','Bb','Cc','ww','AA','BB','CC'] 
[''.join(my_list[i:i + 4]) for i in range(0, len(my_list), 4)] 
+0

하하는 방금 내 답변을 게시하여 똑같은 해결책을 게시했는지 확인했습니다. +1 –

+0

여기에 다음과 같은 오류가 있습니다. new_Final = [ ''.join (range [0, len (final), 4)의 i에 대한 final [i : i + 4]] ^ SyntaxError : 올바르지 않은 구문 마지막 브래킷을 가리킴) –

1

당신은 같은 것을 사용할 수 있습니다

def _get_chunks(lVals, size): 
    for i in range(0, len(lVals), size): 
     yield lVals[i: i + size] 

data = ['Ww','Aa','Bb','Cc','ww','AA','BB','CC'] 


output = [''.join(chunk) for chunk in _get_chunks(data, 4)] 
>>> ['WwAaBbCc', 'wwAABBCC'] 
관련 문제