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

如何用Python列表推导式实现大写字母前加空格的字符串处理?

如何用列表推导式实现大写字母前添加空格的逻辑

先看你原本的循环实现:

def solution(s):
    word = []
    for letter in s:
        print(letter.isupper())
        if letter.isupper():
            word.append(" ")
            word.append(letter)
        else:
            word.append(letter)
    return ''.join(word)

print(solution("helloWorld"))

这段代码的逻辑是遍历字符串每个字符,遇到大写字母时先追加空格、再追加字母,最终能得到正确输出hello World。

你最初尝试的列表推导式写法出错,问题出在" " and letter这个逻辑上:

def solution(s):
    word = [" " and letter if letter.isupper() else letter for letter in s]
    return ''.join(word)

Python里and是逻辑运算符,它会返回最后一个为真的表达式结果。因为空格字符串" "是真值,所以" " and letter最终只会返回letter,等于没加空格,自然输出和原字符串一致。

正确的做法是把空格和大写字母拼接成一个字符串元素,这样列表推导式生成的每个元素,大写字母对应的是" " + letter,其他字符保持原样,再通过join合并就实现了需求:

def solution(s):
    word = [" " + letter if letter.isupper() else letter for letter in s]
    return ''.join(word)

运行这段代码就能得到期望的hello World。

另外也可以直接用生成器表达式简化,省去显式创建列表的步骤:

def solution(s):
    return ''.join(" " + c if c.isupper() else c for c in s)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 15:15:42