首页 > 解决方案 > 将字符串拆分为 Ysubn 字符串

问题描述

我有一个字符串,比如 [ADSOKFJACP]。我想把它分成给定值 N 的子字符串。所以如果 N = 2,我想输出 2 个字符串 y1 = [ASKJC],y2 = [DOFAP]。如果 N = 3,它应该输出 3 个字符串 Y1、Y2、Y3,每个字符串包含每个第 3 个字母。Y1 = [AOJP],y2 = [DKA]...

我怎样才能为python做到这一点?

标签: 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)

推荐阅读