Python for循环多维数组索引问题

Python for loop multi-dimensional array indexing issue

我有一个字符串列表 strs 中的前两个字符串,保证长度至少为 2。我想将它们的字母相互比较,并在它们的字母相同时执行任务.这是我使用的代码:

        iter_len = len(strs[1])
        if (len(strs[0]) >= len(strs[1])):
            iter_len = len(strs[0])
        
        for i in range (0, iter_len, 1):
            if (strs[0][i] == strs[1][i]):
                [do a thing]

但是,当我 运行 这个时,我得到 if (strs[0][i] == strs[1][i]): 行的 IndexError: string index out of range。我不太明白为什么会这样,因为第一个 if 语句应该确保 iter_lenstrs[0]strs[1] 之间的最小长度,并且应该防止索引从过去。非常感谢任何建议。

如果您需要同步迭代两个序列,通常最好使用 zip:

for a,b in zip(strs[0], strs[1]):
    if a == b:
        #[do a thing]

这将解决一个序列比另一个序列长的问题。

如果您需要索引,可以将 enumerate 与您的 zip:

一起使用
for i, (a, b) in enumerate(zip(strs[0], strs[1])):
    if a == b:
        #[do a thing with i]