2012-04-10 107 views
1

我有一個列表如下:加入每四個字符串列表

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

,並繼續在這樣的格局,具有不同的資本和小寫字母。 我想要做的是將這個列表中的每四個項目一起加入。因此,由此產生的新清單(給出上面的清單)將如下所示:

['WwAaBbCc', "wwAABBCC'] 

我該怎麼辦?

+4

是什麼標題有問題怎麼辦? – 2012-04-10 04:00:02

+0

編輯標題。我要去問別的東西,然後改變主意。 – 2012-04-10 04:03:53

回答

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 2012-04-10 04:03:30

+0

@jamylak:LC優先於map() – 2012-04-10 04:04:18

+0

我討厭:D反正這是我最喜歡的方式,雖然我喜歡'map' – jamylak 2012-04-10 04:10:06

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 – 2012-04-10 04:04:02

+0

這裏是我得到的錯誤:new_Final = [''.join(final,[i:i + 4] for range in(0,len(final),4)] ^ SyntaxError:invalid syntax指向最後一個支架) – 2012-04-10 04:09:23

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'] 
相關問題