Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数组连接尝试期间列表索引超出范围_Python_Arrays_List_Indexing_Range - Fatal编程技术网

Python 数组连接尝试期间列表索引超出范围

Python 数组连接尝试期间列表索引超出范围,python,arrays,list,indexing,range,Python,Arrays,List,Indexing,Range,在此处输入code我尝试搜索,但找不到该问题的精确解决方案。我知道当指定的索引不可能或超出范围时,会发生列表索引错误。对于这个问题,我一直在挠头,因为我相信这在理论上是可能的 本质上,我有三个独立的数组,我想连接它们对应的元素,即array1的第一个元素、array2的第一个元素和array3的第一个元素 然后,我想连接array1的第二个元素、array2的第二个元素和array3的第二个元素,以此类推 以下是我的代码: i = 0 for i in range (len(array1)):

在此处输入code
我尝试搜索,但找不到该问题的精确解决方案。我知道当指定的索引不可能或超出范围时,会发生列表索引错误。对于这个问题,我一直在挠头,因为我相信这在理论上是可能的

本质上,我有三个独立的数组,我想连接它们对应的元素,即array1的第一个元素、array2的第一个元素和array3的第一个元素

然后,我想连接array1的第二个元素、array2的第二个元素和array3的第二个元素,以此类推

以下是我的代码:

i = 0
for i in range (len(array1)):                     #all arrays are the same length

    string_conc = array1[i] + array2[i] + array3[i]

    master_array.append(string_conc)

    i = i + 1
这将返回此回溯:

Traceback (most recent call last):
  File "parser.py", line 14, in <module>
    string_conc = array1[i] + array2[i] + array3[i]
IndexError: list index out of range
打印i时,它返回其正确的值


我错过了什么?循环似乎无法检索i的值。当我还在循环中定义I时,它就起作用了——但这就产生了逻辑问题,每次循环运行时都要将I的值重置为0。

这一个函数应该足够了:

zip(array1, array2, array3)
这使得小的子列表包含每个列表中的一个元素。如果要将它们串接在一起,可以使用以下方法:

[''.join(s) for s in zip(array1, array2, array3)]
这就是你想要的:

master_array = []    
for i in range (len(array1)-1):                    

    string_conc = array1[i] + array2[i] + array3[i]

    master_array.append(string_conc)
您的问题是,您使用
i
执行两个不同的任务,但没有按您希望的方式工作

你想做的是:

i = 0
for iterations in range(len(array1)-1): # note iterations not i                    

    string_conc = array1[i] + array2[i] + array3[i]

    master_array.append(string_conc)

    i = i + 1

为什么这被标记为“出局”?为什么它没有标记为“Python”?:p您的错误消息与您的代码不匹配。您不需要
i=0
(因为
for
循环会处理此问题),也不需要
i=i+1
。请为标记道歉,这是我关于stackoverflow的第一篇帖子;错误消息不匹配,因为我尝试了最后一分钟的调整(将其转换为整数),但在复制和粘贴时没有发现差异。您说“所有数组的长度相同”。也许我们应该检查一下:就在循环之前,添加
打印len(array1)、len(array2)、len(array3)
,然后让我们知道结果。理论上,在循环结束时手动增加计数器应该没有效果。很难说这对OP的真实代码意味着什么,因为错误与发布的代码不匹配。@user2357112:你是对的;这是来自其他语言的迁移。我将删除它。您推荐的代码将丢失最后的元素
range
不包括上限,因此
range(len(array1))
生成正确的索引以访问包含
len(array1)
元素的序列。
i = 0
for iterations in range(len(array1)-1): # note iterations not i                    

    string_conc = array1[i] + array2[i] + array3[i]

    master_array.append(string_conc)

    i = i + 1