有没有一种不使用全局关键字或循环的方法?

2024-09-28 01:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

将l作为参数传递(这样我就可以在函数中使用它作为局部变量)似乎不是一个好方法,因为每次调用函数时它都会被重新初始化

l = s.split(' ')

ns = ''


def revur(s, i=0):
    global ns
    if i >= len(s):
        return ns
    ns = s[i] + ns
    return revur(s, i+1)


def wrur(s, i=0):
    global l, ns
    ns = ''
    l[i] = revur(l[i])
    if i >= len(l)-1:
        s = ' '.join(l)
        return s
    return wrur(s, i + 1)


print(wrur(s))

输入:嗨,你好吗 输出:ih woh era uoy


Tags: 方法函数lenreturnifdefglobalsplit
2条回答

如果没有任何循环,这是不可能实现的,因为字符串中的每个字符都需要受到影响,但有多个O(N)解决方案,其中一个是:

' '.join([word[::-1] for word in s.split()])

这个解决方案,连同另一个答案,展示了在iterable中更改每个项的两种主要方法

使用map()、切片和.join()

print(' '.join(map(lambda x: x[::-1],s.split())))

其中s是字符串

相关问题 更多 >

    热门问题