You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中直接生成无空字符串的子串组合

解决Python生成非空子串组合的问题

你可以直接调整循环中i的起始范围,避免生成空字符串。原代码中i从0开始,当i < j时,切片s[j:i+1]会得到空串,只要让i从j开始遍历就能解决这个问题。

修改后的代码:

s = 'edsd'
l = []
j = 0
while j < len(s):
    # i 从 j 开始,确保切片的起始索引不大于结束索引
    for i in range(j, len(s)):
        l.append(s[j:i + 1])
    j += 1
print(l)

运行这段代码会直接输出预期结果:
['e', 'ed', 'eds', 'edsd', 'd', 'ds', 'dsd', 's', 'sd', 'd']

原代码问题分析

原代码中for i in range(len(s))让i从0到3遍历,当j=1时,i=0会执行s[1:1],这是一个空切片;同理j=2时,i=0和i=1都会产生空串,这就是输出里出现多个空字符串的原因。调整i的起始值为j,就能保证切片的起始位置j小于等于结束位置i+1,从而只生成非空的子串。

内容的提问来源于stack exchange,提问作者Mak Hus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 04:22:08