python - 在加密字符串 block 的嵌套循环中避免出现 'index not in range'

标签 python nested-loops

for i in range(n):
    for j in range(o):
        orderedList.append(newStringList[j][i])

我是一名 Python 初学者
我有一个加密问题需要解决,其中我必须将一个字符串分成 n 大小的 block ,然后将每个的第一个索引添加到列表中,然后将每个的第二个索引添加到列表中,等等。我有一个有效的问题解决方案然而,当所有 block 都相等时,如果 len(string)%n != 0,最后一个 block 有时会更小。当发生这种情况时,我用于将字符添加到列表的上述循环超出范围,并且程序不会超出范围工作。有没有什么解决办法呢。

编辑
看来我有点不清楚
加密需要一个字符串,例如“123456789”和一个数字 n,例如3. 然后将字符串分成大小为 n 的 block 。所以 newStringList[123,456,789]。然后,我将第一个元素从 newStringList[0] 移至 newStringList[n-1],然后移至第二个元素,依此类推。所以orderedList[1,4,7,2,5,8,3,6,9]。现在您对上述问题有了更好的背景。

最佳答案

在最后一行之前添加一个 if 条件将解决该问题。 if 条件是确保仅当元素存在时才访问数组列表。

for i in range(n):
    for j in range(o):
        if j < len(newStringList) and i < len(newStringList[j]) :
              orderedList.append(newStringList[j][i])

关于python - 在加密字符串 block 的嵌套循环中避免出现 'index not in range',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28182808/

相关文章:

python - 扭曲的内联回调和远程生成器

Python 双循环

javascript - 在 D3 定向力布局中循环遍历额外数据

c# - 用于过滤 5 个嵌套类的 Lambda 表达式

android - Kivy 播放音频不工作

python - 在 python 中使用 **kwargs 和 SimpleXMLRPCServer

PHP 循环模板引擎 - 从零开始

python - 循环次数影响效率(解释语言还是编译语言?)

LISP 嵌套循环并行执行。如何强制它按顺序执行?

python - Matplotlib 从 C++ 绘制多个图表