在 Python 中向后迭代一个字符串

使用 reversed() 函数以相反的顺序迭代字符串,例如 for char in reversed(my_str):。 reversed() 函数接受一个迭代器,例如一个字符串,将其反转并返回结果。

my_str = 'zadmei'

# ✅ 以相反的顺序迭代字符串 (reversed())

for char in reversed(my_str):
    print(char)

# ---------------------------------

# ✅ 以相反的顺序迭代字符串(负切片)

for char in my_str[::-1]:
    print(char)

# ---------------------------------

# ✅ 以相反的顺序迭代字符串(带索引)

for index, char in reversed(list(enumerate(my_str))):
    print(index, char)

第一个示例使用 reversed() 函数反转字符串。

reversed 函数接受一个迭代器,将其反转并返回结果。

my_str = 'zadmei'

for char in reversed(my_str):
    print(char)

或者,我们可以使用负步长。


使用负步长向后迭代字符串

使用负步长向后迭代字符串,例如 对于 my_str[::-1]: 中的字符。 步长为 -1 的切片用于在使用 for 循环对其进行迭代之前反转字符串。

my_str = 'zadmei'


for char in my_str[::-1]:
    print(char)

在迭代字符串之前,我们使用了一个负步长来反转字符串。

my_str = 'zadmei'

reversed_str = my_str[::-1]
print(reversed_str)  # 👉️ iemdaz

字符串切片的语法是 my_string[start:stop:step]

我们省略了 start 和 stop 值,只指定了一个负 step 来反转字符串。

选择哪种方法是个人喜好问题。 我会使用 reversed() 函数,因为我发现它更具可读性和直观性。


使用索引向后迭代字符串

要使用索引向后迭代字符串:

  1. 使用 enumerate() 函数来访问索引。
  2. 将枚举对象转换为列表并反转列表。
  3. 使用 for 循环以相反的顺序遍历字符串。
my_str = 'admin'


for index, char in reversed(list(enumerate(my_str))):
    print(index, char)

我们使用 enumerate 函数在迭代时访问索引。

enumerate 函数接受一个可迭代对象并返回一个包含元组的枚举对象,其中第一个元素是索引,第二个是项目。

my_str = 'abcd'

for index, char in enumerate(my_str):
    print(index, char)

我们使用 list() 类将枚举对象转换为列表,因为 reversed() 函数采用的第一个参数是一个序列。

my_str = 'admin'

# 👇️ [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
print(list(enumerate(my_str)))

# 👇️ [(3, 'd'), (2, 'c'), (1, 'b'), (0, 'a')]
print(list(reversed(list(enumerate(my_str)))))

最后一步是使用 for 循环遍历元组列表。

每个元组中的第一个元素是索引,第二个是对应的字符。