如何打印字符串的偶数索引和奇数索引字符?

suy*_*tam -1 python string indexing python-2.7

手头的任务:

给定一个长度为 N 的字符串 S,索引从 0 到 N-1,将其偶数索引和奇数索引字符打印为 2 个空格分隔的字符串在一行上。

测试用例的编写使得第一行包含一个整数 N(测试用例的数量)。后续 N 行中的每一行 i 都包含一个字符串。

这是我的代码:

N = int(raw_input())

for i in range(0,N):
    string = raw_input()

evenlist = []
oddlist = []

for item, char in enumerate(strg):
    if item % 2 == 0:
        evenlist.append(char)
    else:
        oddlist.append(char)

print ''.join(evenlist), ''.join(oddlist)
Run Code Online (Sandbox Code Playgroud)

示例运行:

N = int(raw_input())

for i in range(0,N):
    string = raw_input()

evenlist = []
oddlist = []

for item, char in enumerate(strg):
    if item % 2 == 0:
        evenlist.append(char)
    else:
        oddlist.append(char)

print ''.join(evenlist), ''.join(oddlist)
Run Code Online (Sandbox Code Playgroud)

但我得到:

The first input is:
2
Hacker
Rank

Expected output is:
Hce akr
Rn ak
Run Code Online (Sandbox Code Playgroud)

这是对一个链接分配,可能更好地解释这个问题。

Moi*_*dri 6

实现这一点的更简单方法是使用字符串切片

>>> my_str = 'Hacker'
>>> '{} {}'.format(my_str[::2], my_str[1::2])
'Hce akr'
Run Code Online (Sandbox Code Playgroud)

因此,您的整个代码可以写成:

for _ in range(int(raw_input())):
    my_str = raw_input()
    print '{} {}'.format(my_str[::2], my_str[1::2])
Run Code Online (Sandbox Code Playgroud)