python - 将字符串分成对
问题描述
我想将文本分成对。
输入:
text = "abcde"
目标输出:
result = ["ab", "cd", "e_"]
电流输出:
result = ['ab', 'abcd']
我当前的代码如下所示。但我不知道我现在是怎么做到的。有人给我小费吗?
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
解决方案
您可以使用列表推导将偶数值与相应的奇数值压缩在一起。如果长度不匹配,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_']
推荐阅读
- python - python中的手写文本行分割
- android - 有没有办法从 Android Profiler 导出数据?
- nlp - 在 Spacy 模式匹配中,我们如何获得有界 Kleene 算子?
- json - Fluentd解析空字符串或null
- java - 由于 Java @Transactional,无法更新数据库记录
- r - 更改条形图中的条形顺序
- python - 用随机数替换 NaN
- r - 对于 R 中的 Leaflet,您可以添加一个按钮来为每个地图图层添加和删除多边形吗?
- python - 如何将此列表对象转换为数据框?
- javascript - EJS 布局样式不适用于每个页面