我正在尝试更新我的字符串:
- 奇数位置的每个单词都会变成大写。
- 偶数位置的每个单词都被颠倒
例如,如果我的输入字符串是:
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())
请您参考如下方法:
您的解决方案不完整。与其对每个替代词进行切片并一次执行一种操作,不如依次迭代每个词,并适本地处理它。
这是解决问题的一种简单方法。定义一个小函数来为你做这件事。
- 将字符串拆分为单词
- 对于每个词,检查它是否是偶数词。如果是,则将其大写。如果不是,则将其反转
- 将转换后的单词连接成一个字符串
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 将每个单词连接回一个字符串。
请注意,还有其他方法可以实现此目的。我将它们作为练习留给您。
