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

如何用Python的.split和.join函数实现字符串隔词大写?

问题描述

我尝试使用.split()函数提取字符串中的单词,已成功提取并大写每隔一个单词(如WORLD, NAME, JOHN),现需用.join()函数将这些大写单词放回原字符串,得到hello WORLD, my NAME is JOHN这类结果,且必须使用.split()和.join()函数。尝试了string_index.upper().join(string)但未成功,寻求正确实现方法。

原测试代码

string = "Hello world, my name is John" 

string = string.split()
string_index = str(string[1::2])
print(string_index.upper())

失败尝试代码

string_index.upper().join(string)
解决方案

你的核心问题是没有正确替换原单词列表中对应位置的元素,直接把切片结果转成字符串再调用join的逻辑完全错误。正确的思路是先修改拆分后的列表中指定位置的单词,再用join合并:

基础实现(循环遍历)

string = "Hello world, my name is John"
# 拆分字符串为单词列表
word_list = string.split()
# 遍历列表,对奇数索引(从0开始计数)的单词转大写
for idx in range(len(word_list)):
    if idx % 2 == 1:
        word_list[idx] = word_list[idx].upper()
# 用空格合并处理后的列表
result = ' '.join(word_list)
print(result)  # 输出: Hello WORLD, my NAME is JOHN

简洁实现(列表推导式)

如果想更简洁,可以用列表推导式一次性完成单词的处理:

string = "Hello world, my name is John"
word_list = string.split()
# 枚举列表,根据索引判断是否转大写
processed_words = [word.upper() if idx % 2 == 1 else word for idx, word in enumerate(word_list)]
result = ' '.join(processed_words)
print(result)

关键说明

  1. .split()默认按空格拆分字符串,得到的是独立单词组成的列表,而非单个字符串
  2. 要修改每隔一个单词,需要定位到列表的奇数索引(从0开始,对应第2、4、6...个单词),直接替换该位置的元素为大写形式
  3. 最后用' '.join()将处理后的列表重新拼接成完整字符串,这才是join函数的正确用法——它需要接收一个可迭代对象(比如列表),用指定字符串连接其中的元素

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:01:02