在python中使用list转换字符串

2024-10-01 15:43:05 发布

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

我一直试图通过从给定的字符串输入中连续反转特定的字符串来重新排列字符串,并且限制作为输入给定。你知道吗

例如 限制为3

如果输入为Hellothegamestarts

输出必须为HELTOLHEGMASTR 它保存在单独的数组中 代码是:

while True: 
    t = int(input())
    if t == 0:
        break

    string = raw_input()
    string = string.encode('utf-8')
    leng = len(string)
    r = t/leng
    m = []
    leng = 0

    for i in range(r):
        if r % 2 == 0:
            l = 0
            l = leng + t
            for i in range(t):
                temp = string[l]
                m.append(temp)
                l = l - 1
            r = r + 1


            leng = leng + t

        else:
            l = 0
            l = leng

            for i in range(t):
                temp = string[l]
                m.append(temp)
                l = l + 1

            r = r + 1


            leng = leng + t


    print m

我得到的输出是[],并请求t的下一个输入

感谢您的帮助。你知道吗


Tags: 字符串代码inforinputstringifrange
3条回答

也许你可以试试-

t = int(input())
if t == 0:
    break;

string = raw_input()
m = ''
leng = len(string)
i = 0
while i < leng:
    if (i/t) % 2 != 0:
        m = m + string[i+t-1:i-1:-1]
    else:
        m = m + string[i:i+t]
    i = i + t
print(m)

或者你可以试试这个

def  myfunc(s, count):
     return [''.join(x) for x in zip(*[list(s[z::count]) for z in range(count)])]

a='Hellothegamestarts'
lst=myfunc(a,3)
print "".join([i if lst.index(i) in range(0,len(lst),2) else i[::-1] for i in lst])

我的乐趣我没写它。它来自here

把方块分成3块,把奇数块倒过来,例如:

import re

s = 'Hellothegamestarts'
r = ''.join(
    el if idx % 2 == 0 else el[::-1] 
    for idx, el in enumerate(re.findall('.{,3}', s))
)
# Heltolhegemastastr

相关问题 更多 >

    热门问题