Python 对于每个字符串S,打印';s偶数索引字符,后跟空格,后跟';s奇数索引字符

Python 对于每个字符串S,打印';s偶数索引字符,后跟空格,后跟';s奇数索引字符,python,Python,我试图做hackerrank挑战,但这段代码解决了测试用例的3/10。 挑战是给定一个长度为N的字符串S,其索引范围为0到N-1,将其偶数索引字符和奇数索引字符作为空格分隔的字符串打印在一行上。注:0被视为偶数索引 import sys cases = int(sys.stdin.readline()) for x in range(cases): str= sys.stdin.readline() str= [str[x] for x in range(len(str)) if

我试图做hackerrank挑战,但这段代码解决了测试用例的3/10。 挑战是给定一个长度为N的字符串S,其索引范围为0到N-1,将其偶数索引字符和奇数索引字符作为空格分隔的字符串打印在一行上。注:0被视为偶数索引

import sys
cases = int(sys.stdin.readline())
for x in range(cases):
    str= sys.stdin.readline()
    str= [str[x] for x in range(len(str)) if x%2==0 and str[x]!="\n"] +[" "] + [str[x] for x in range(len(str)) if x%2!=0]
    str="".join(str)
    print(str)
我需要一些帮助。
谢谢

解决方案取决于您对字符的索引方式

如果第一个字符是索引0:

s = "abcdefghijklmnopqrstuvwxyz" 
r = "".join(s[0::2]) + " " + "".join(s[1::2])

print(r)
acegikmoqsuwy bdfhjlnprtvxz
如果第一个字符是索引1:

r = "".join(s[1::2]) + " " + "".join(s[0::2])

print(r)
bdfhjlnprtvxz acegikmoqsuwy

代码怎么了?它怎么不起作用?另外,您是否有意在一行代码中解决此问题?@Kos抱歉,我要做的是给定一个长度为N的字符串S,其索引范围为0到N-1,将其偶数索引字符和奇数索引字符作为空格分隔的字符串打印在一行上。注意:0被认为是一个偶数索引。@KevinWang我不知道问题出在哪里,但当我向hackerrank提交代码时,它说10个测试用例中有7个失败。是的,我试着用一行代码来解决这个问题。谢谢你的回复。你有没有试着制作你自己的测试用例来寻找你的代码不能按预期工作的实例?我解决了。如果x%2==0,我将str=[str[x]替换为范围内的x(len(str));如果x%2!=0,我将str[x]替换为范围内的x(len(str))。join(str[0::2])+“”+“”。join(str[1::2}),并将.strip()添加到str=sys.stdin.readline()。感谢@KevinWang的帮助