python - 通过 4 个索引同时迭代

标签 python python-3.x loops for-loop iteration

我编写了一个代码,通过多个索引以相反的顺序遍历一个字符串或列表,2 个向前,2 个向后。 但是,由于迭代 1 和迭代 3 中 for 循环的范围限制,我无法获得最终的 char 或列表元素。 这是代码:

mix = 'fdsfef232'
for i in range(len(mix)-1):
    print('Iter 1:>>>',mix[i],'\tIter 2:>>>',mix[i+1],'\tIter 3:>>>',mix[-1-i],'\tIter 4:>>>',mix[-2-i])

这是输出:

Iter 1:>>> f    Iter 2:>>> d    Iter 3:>>> 2    Iter 4:>>> 3
Iter 1:>>> d    Iter 2:>>> s    Iter 3:>>> 3    Iter 4:>>> 2
Iter 1:>>> s    Iter 2:>>> f    Iter 3:>>> 2    Iter 4:>>> f
Iter 1:>>> f    Iter 2:>>> e    Iter 3:>>> f    Iter 4:>>> e
Iter 1:>>> e    Iter 2:>>> f    Iter 3:>>> e    Iter 4:>>> f
Iter 1:>>> f    Iter 2:>>> 2    Iter 3:>>> f    Iter 4:>>> s
Iter 1:>>> 2    Iter 2:>>> 3    Iter 3:>>> s    Iter 4:>>> d
Iter 1:>>> 3    Iter 2:>>> 2    Iter 3:>>> d    Iter 4:>>> f

如何确保 Iter 1 和 Iter 3 都到达字符串的末尾? 谢谢

最佳答案

已经给出模块 collections 的有效答案,这里是没有 import 的答案。

基本上首先计算你的索引,给定输入字符串的长度限制,并在到达末尾时回绕,示例:

mix = 'fdsfef232'
for i in range(len(mix)):
    a = i
    b = 0 if (i+1) > len(mix)-1 else i+1
    c = 0 if (-1-i) < (0-len(mix)-1) else -1-i
    d = -1 if (-2-i) < (0-len(mix)) else -2-i
    print('Iter 1:>>>',mix[a],'\tIter 2:>>>',mix[b],'\tIter 3:>>>',mix[c],'\tIter 4:>>>',mix[d])

输出:

Iter 1:>>> f    Iter 2:>>> d    Iter 3:>>> 2    Iter 4:>>> 3
Iter 1:>>> d    Iter 2:>>> s    Iter 3:>>> 3    Iter 4:>>> 2
Iter 1:>>> s    Iter 2:>>> f    Iter 3:>>> 2    Iter 4:>>> f
Iter 1:>>> f    Iter 2:>>> e    Iter 3:>>> f    Iter 4:>>> e
Iter 1:>>> e    Iter 2:>>> f    Iter 3:>>> e    Iter 4:>>> f
Iter 1:>>> f    Iter 2:>>> 2    Iter 3:>>> f    Iter 4:>>> s
Iter 1:>>> 2    Iter 2:>>> 3    Iter 3:>>> s    Iter 4:>>> d
Iter 1:>>> 3    Iter 2:>>> 2    Iter 3:>>> d    Iter 4:>>> f
Iter 1:>>> 2    Iter 2:>>> f    Iter 3:>>> f    Iter 4:>>> 2

关于python - 通过 4 个索引同时迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48645464/

相关文章:

bash - 循环 sed 的结果

python - 从 Python 中的字符串中删除“”的正则表达式

python - Python 中的重复直到或等效循环

python - 如何使用 Selenium 和 Chromedriver 查找元素

python - 如何使 random.choices 真正随机(我在 secrets 模块中找不到它)

java - 需要在 while 循环内更新变量

python - 如何自定义条形注释以不显示选定值

python-3.x - 当我使用 PIL 将裁剪粘贴到另一个图像时,它会引发 ValueError

python - 从枚举类获取值,其中枚举成员名称在 Python 中运行时已知

java - 迭代存储在字符串中的一系列位