2012-04-10 80 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'] 
相关问题