如何在列表中连接成对的字符串 [英] How to join pairs of strings inside a list

查看:38
本文介绍了如何在列表中连接成对的字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个类似

myl = ['A','B','C','D','E','F'] #length always even

现在我想要的输出是'AB','CD','EF'

我尝试过

>>> myl = ['A','B','C','D','E','F']
>>> even_pos = myl[::2]
>>> odd_pos = myl[::-2]
>>> odd_pos.reverse()
>>> newlist = zip(even_pos,odd_pos)
>>> for x in newlist:
...     print "".join(list(x))
...
...
AB
CD
EF
>>>

我不喜欢这种方式,因为我认为这太多了.

I don't like this way because I think this is too much.

因此,有没有更好的方法来实现我的输出.

So, is there any better way to achieve my output.

推荐答案

您可以使用列表推导或生成器表达式来简洁地做到这一点:

You can do this concisely using a list comprehension or generator expression:

>>> myl = ['A','B','C','D','E','F']
>>> [''.join(myl[i:i+2]) for i in range(0, len(myl), 2)]
['AB', 'CD', 'EF']
>>> print '\n'.join(''.join(myl[i:i+2]) for i in range(0, len(myl), 2))
AB
CD
EF

对于这种特殊情况,您可以将''.join(myl [i:i + 2])替换为 myl [i] + myl [i + 1] ,但是当您要进行三个或三个以上的分组时,使用''.join()方法更容易.

You could replace ''.join(myl[i:i+2]) with myl[i] + myl[i+1] for this particular case, but using the ''.join() method is easier for when you want to do groups of three or more.

或者 zip() :

>>> map(''.join, zip(*[iter(myl)]*2))
['AB', 'CD', 'EF']

这篇关于如何在列表中连接成对的字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆