有没有一个函数可以帮助我将(x)拆分成一个字符串,每次拆分都包含(x+1)个值?

2024-06-24 12:00:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是想了解如何将字符串中x值之后的值(即x+1)包含在拆分中

我尝试了一个for循环,只有for i: splitlist.append(i),最后可以打印[a,B,C,D,E]

samplestring = 'ABCDE'
for i in samplestring:
    splitlist = []
    if i+1 == (none):
        break
    else:
        splitlist.append(i,i+1)

我想返回['AB'、'BC'、'CD'、'DE'],但结果却是行中的类型错误

if i+1 == (none):

(TypeError: can only concatenate str (not "int") to str)


Tags: 字符串innoneforifabcdelse
3条回答

使用zip将相邻项分组:

[f'{x}{y}' for x, y in zip(samplestring, samplestring[1:])]

示例

samplestring = 'ABCDE'

print([f'{x}{y}' for x, y in zip(samplestring, samplestring[1:])])
# ['AB', 'BC', 'CD', 'DE']
print([samplestring[i:i + 2] for i in len(samplestring) - 1])

有几个问题:

  • 每次迭代都会创建一个空列表
  • 您正在尝试将字符串:i与整数:1组合
  • 检查字符串是否结束的方法有点奇怪,您知道字符串的长度(使用len(samplestring)),因此可以指定循环的频率

要解决此问题,您可以使用:

samplestring = 'ABCDEF'
splitlist = []
for i in range(len(samplestring) - 1):
    splitlist.append(samplestring[i] + samplestring[i+1])

这将导致拆分列表:

['AB', 'BC', 'CD', 'DE', 'EF']

相关问题 更多 >