Skip to main content
 首页 » 编程设计

python之如何对字符串的奇数和偶数进行不同的操作

2025年05月04日30zdz8207

我正在尝试更新我的字符串:

  • 奇数位置的每个单词都会变成大写。
  • 偶数位置的每个单词都被颠倒

例如,如果我的输入字符串是:

n = 'what is the boarding time in bangalore station' 

我希望我的输出字符串是:

WHAT si THE gnidraob TIME ni BANGALORE noitats 

这是我试过的代码:

n = 'what is the boarding time in bangalore station' 
m = n.split(" ") 
k=m[0::2] 
for i in k: 
    print(i.upper()) 

请您参考如下方法:

您的解决方案不完整。与其对每个替代词进行切片并一次执行一种操作,不如依次迭代每个词,并适本地处理它。

这是解决问题的一种简单方法。定义一个小函数来为你做这件事。

  1. 将字符串拆分为单词
  2. 对于每个词,检查它是否是偶数词。如果是,则将其大写。如果不是,则将其反转
  3. 将转换后的单词连接成一个字符串

def f(n): 
    for i, w in enumerate(n.split()): 
        if i % 2 == 0: 
            yield w.upper()    # uppercase even words 
        else: 
            yield w[::-1]      # reverse odd words 

>>> ' '.join(f('what is the boarding time in bangalore station')) 
'WHAT si THE gnidraob TIME ni BANGALORE noitats' 

f 所做的是将字符串拆分为单词列表。 enumerate将列表转换为 (index, word) 元组列表。使用索引来确定单词是奇数还是偶数。 yield 将函数转换为生成器,从循环中一次生成一个单词。最后,str.join 将每个单词连接回一个字符串。

请注意,还有其他方法可以实现此目的。我将它们作为练习留给您。