Python:增加数组索引

标签 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]) + i == int(row[2]) and int(row[2]) + i == int(row[3]):
    do something

If 语句的作用远不止于此。我的代码显然运行得很好,因为它没有什么特别的。

我只是想找到一种无需打字即可完成我正在做的事情的方法

如果行[0]和行[1]和行[2]和..

假设最大值是 row[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] ...

我不太确定该怎么做,我希望我的问题很清楚。我认为这是类似的question in C#

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

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

最佳答案

您可以与范围进行比较:

if [int(x) for x in row[0:4]] == range(int(row[0]), int(row[0]) + 4 * i, i):

右侧将为从 row[0]row[0] + 3 * i 范围内的整数,增量为 i .

如果您始终将这些行视为整数,那么预先将行转换为 intlist 可能会更简单:

row = [int(x) for x in row]

这样你就可以更简单地写出条件:

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

关于Python:增加数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31147767/

相关文章:

Python OrderedDict 可在 int 上迭代

python - 如何使用python在JSON数据中添加方括号

python - 如何在 C++ 中操作 pybind11::dict

python - 如何在 python 中绘制映射

python - 如何格式化 scikit-learn 输出数据?

Javascript 2D 数组意外行为

ios - 名称为一半字符串和一半变量的调用数组 : Dynamic References

python-2.7 - f2py 与英特尔 Fortran 编译器

python - pynamodb 亚马逊凭据异常

python - 来自数字模块的 ABC 类数字