python - 将字符串拆分为 Ysubn 字符串
问题描述
我有一个字符串,比如 [ADSOKFJACP]。我想把它分成给定值 N 的子字符串。所以如果 N = 2,我想输出 2 个字符串 y1 = [ASKJC],y2 = [DOFAP]。如果 N = 3,它应该输出 3 个字符串 Y1、Y2、Y3,每个字符串包含每个第 3 个字母。Y1 = [AOJP],y2 = [DKA]...
我怎样才能为python做到这一点?
解决方案
一种解决方案使用itertools
:
from itertools import zip_longest, islice
s = 'ADSOKFJACP'
N = 3
out = {}
for i, v in enumerate(map(''.join, zip(*zip_longest(*(islice(s,i,len(s),N) for i in range(N)), fillvalue=''))), 1):
out['Y{}'.format(i)] = v
print(out)
印刷:
{'Y1': 'AOJP', 'Y2': 'DKA', 'Y3': 'SFC'}
N = 2
结果是:
{'Y1': 'ASKJC', 'Y2': 'DOFAP'}
编辑(更简单的版本):
s = 'ADSOKFJACP'
N = 3
out = {}
for n in range(N):
out['Y{}'.format(n+1)] = s[n::N]
print(out)
推荐阅读
- c# - 用户控件的常见错误(AutoScaleDimensions 和 AutoScaleMode)尚待专家修复
- javascript - How to migrate custom buttons and dialogs to TinyMCE 5
- php - PHP - regular expression to remove domain name from row
- mysql - Mysql get count on multiple columns
- javascript - 带有路径和 equalTo 布尔值的 Firebase orderByChild 不返回任何内容
- python - 如何将dict对象的内置方法值转换为字典
- android - Somebody is reverse engineering my app. Should I afraid of stealing? Is it legal?
- laravel - 如何在 laravel 的 getMessage 中指定用户错误信息
- c# - 添加新项目时如何添加新的堆栈面板?
- javascript - 笑话/酶 | 测试中未定义 Redux 属性