首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用字符串Python进行增量和递减?

如何使用字符串Python进行增量和递减?
EN

Stack Overflow用户
提问于 2022-10-27 16:39:11
回答 4查看 82关注 0票数 2

希望你们在这段时间里一切顺利。

这是我的密码:

代码语言:javascript
复制
def ab(n):


    first = 0
    last = -1 

    endprod = n[first] + n[last]
    endprod2 = n[first+1] + n[last-1]
    endprod3 = n[first+2] + n[last-2]
    endprod4 = n[first+3] + n[last-3]
    endprod5 = n[first+4] + n[last-4]

        
    endprod100 = endprod[::-1] + endprod2[::-1] + endprod3[::-1]+ endprod4[::-1]+ endprod5[::-1]

    return endprod100

我可以做,但我的不是一个循环。是否有方法将我的代码转换为for循环。所以,增加1,减少1。

谢谢,

EN

回答 4

Stack Overflow用户

发布于 2022-10-27 16:44:59

试试这个:

代码语言:javascript
复制
def ab(n):
    result = ''
    for j in range(len(n) // 2):
        result += n[-j-1] + n[j]
    if len(n) % 2 == 1:
        result += n[len(n) // 2]
    return result

你也需要这个角色

代码语言:javascript
复制
if len(n) % 2 == 1:
    result += n[len(n) // 2]

因为输入字符串可能有奇数字符。

示例:

代码语言:javascript
复制
>>> ab('0123456789')
'9081726354'
>>> ab('01234956789')
'90817263549'

如果您想重用您的原始逻辑:

代码语言:javascript
复制
def ab(n):
    result = ''
    first = 0
    last = -1
    for j in range(len(n) // 2):
        result += n[last-j] + n[first+j]
    if len(n) % 2 == 1:
        result += n[len(n) // 2]
    return result
票数 1
EN

Stack Overflow用户

发布于 2022-10-27 17:04:37

你也可以恢复它:

代码语言:javascript
复制
def ab(s):
    if len(s)>2:
        return s[-1]+s[0]+ab(s[1:-1])
    else:
        return s

但里卡多回答的最后一部分更符合你的问题。

票数 1
EN

Stack Overflow用户

发布于 2022-10-27 16:54:58

您需要为您的循环拆分您的字符串,意味着您首先将字符串分解为一半,然后构建您的字符串,您可以使用zip在多个可迭代的上进行迭代。就像这样:

代码语言:javascript
复制
def ab(s):
    out = ""
    for v0,v1 in zip(s[:len(s)//2 -1 :-1], s[:len(s)//2 ]):
        out += v0 + v1
    return out

更好的版本,你应该写没有循环。就像这样:

代码语言:javascript
复制
out = "".join(map(lambda x: "".join(x), zip(s[:len(s)//2 -1 :-1], s[:len(s)//2 ])))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74225466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档