Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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/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
Python:增加数组索引_Python_Arrays_Python 2.7 - Fatal编程技术网

Python:增加数组索引

Python:增加数组索引,python,arrays,python-2.7,Python,Arrays,Python 2.7,我有一个随机csv文件,包含随机数,逗号分隔。为了过滤数据,我正在做一些迭代 if (int(row[0]) + i == int(row[1])) and int(row[1]) + i == int(row[2]) and int(row[2]) + i == int(row[3]) and int(row[3]) + i == int(row[4]): do something elif (int(row[0]) + i == int(row[1])) and int(row[1]

我有一个随机csv文件,包含随机数,逗号分隔。为了过滤数据,我正在做一些迭代

if (int(row[0]) + i == int(row[1])) and int(row[1]) + i == int(row[2]) and int(row[2]) + i == int(row[3]) and int(row[3]) + i == int(row[4]):
    do something
elif (int(row[0]) + i == int(row[1])) and int(row[1]) + i == int(row[2]) and int(row[2]) + i == int(row[3]):
    do something
If语句远不止这些。我的代码显然工作得很好,因为它没有什么特别之处

我只是想找到一种不用打字就能完成我正在做的事情的方法

如果第[0]行和第[1]行以及第[2]行和..

假设最大值为第[4]行,如上面的示例所示,基本上,我想做一些事情,比如递归函数:

for n in range of 0 to 4
    if row[n] +i == row[n+1]:
        do something
        row[n] == row[n-1]
           if row[n-1] ...
我不太清楚如何做到这一点,我希望我的问题是明确的。我认为这是一个类似的例子

我真的不知道该怎么做的部分是如何摆脱
,我的意思是如果我应该写
,如果。。。然后,我可以复制粘贴,然后做我正在做的事情,我想要一个更好的解决方案,如果它存在的话


如果存在解决方案,我更希望它是递归的,因为我正在努力消除代码中的循环。

您可以与
范围比较:

if [int(x) for x in row[0:4]] == range(int(row[0]), int(row[0]) + 4 * i, i):
右侧将是从
行[0]
行[0]+3*i
范围内的整数,增量为
i

如果您总是将这些行视为整数,那么事先将行转换为
int
列表可能会更简单:

row = [int(x) for x in row]
因此,您可以更简单地编写条件:

if row[0:4] == range(row[0], row[0] + 4 * i, i):

如果范围(4)中n的all(int(row[n])+i==int(row[n+1]):…
“如果存在解决方案,我更喜欢递归解决方案,因为我正在努力消除代码中的循环。”为什么?递归不是python的强项之一。通常情况下,您会选择另一种方法:删除递归并用迭代方法替换它。您是否尝试查看特定行中的所有内容是否都具有相同的值?您主要是在寻找检查特定长度行值的解决方案,如您的示例4,或者找出一行中有多少个值具有此属性?
if[int(x)for x in row[0:4]==range(int(row[0]),int(row[0])+4*i,i: