首页 > 解决方案 > 将字符串分成对

问题描述

我想将文本分成对。

我当前的代码如下所示。但我不知道我现在是怎么做到的。有人给我小费吗?

def split_pairs(text):
    result = []
    if text is None or not text:
        return []
    pair = ""
    for i in range(len(text)):
        if i % 2 == 0:
            pair += text[i]
            pair += text[i+1]
        else:
            result.append(pair)
    return result

标签: pythonstringlistsplit

解决方案


您可以使用列表推导将偶数值与相应的奇数值压缩在一起。如果长度不匹配,itertools.zip_longest您可以使用该参数提供“填充”。fillvalue

>>> from itertools import zip_longest
>>> s = 'abcde'
>>> pairs = [i+j for i,j in zip_longest(s[::2], s[1::2], fillvalue='_')]
>>> pairs
['ab', 'cd', 'e_']

推荐阅读