繁体   English   中英

向前和向后遍历字符串,提取交替字符

[英]Iterate through a string forwards and backwards, extracting alternating characters

我正在研究 python 并且有一个我似乎无法破解的实验室。 我们有一条线,例如shacnidw ,它必须被转换成sandwich 我不知何故需要使用for循环进行迭代,并首先选择具有奇数索引的字母,然后是后向偶数索引。 就像选择一个索引为 1,3,5,7,8,6,4,2 的字母。

使用列表或切片看起来很明显,但我们还不允许使用这些函数。 我想问题是我该怎么做?

我希望我能正确理解你的问题。 检查下面的代码。

s = 'shacnidw'
s_odd = ""
s_even = ""
for i in range(len(s)):
  if i%2 == 0:
    s_even += s[i]
for i in range(len(s), 0, -1):
  if i%2 == 1:
    s_odd += s[i]

print(s_even + s_odd)

我希望它可能会有所帮助。

编程就是将复杂的问题分解为更简单的问题。 试着把它分解成更小的步骤。

  1. 首先,你能在for循环中生成数字 1、3、5、7 吗?
  2. 接下来,你能在第二个循环中生成 8,6,4,2 吗?

解决这两个步骤应该会让你走上正轨。

您的文本看起来是可以使用以下语法实现的特定模式。

1, 3, 5, 7:对于范围内的 n(1, size, 2):正向步长为 2

8, 6, 4, 2:对于m in range(size, 0, -2):反方向步长2

通过使用上述索引构建字符串,我们可以很容易地得到预期的结果。

string = 'shacnidw'
result = ''
size = len(string) - 1

for n in range(0, size, 2):
    result += string[n]

for m in range(size, 0, -2):
    result += string[m]

print(result)

结果

sandwich

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM