У меня есть случайный файл csv, содержащий случайные числа, разделенные запятой. Я делаю несколько итераций, чтобы фильтровать данные.Python: увеличение индексов массива
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 являются намного более. Мой код, очевидно, отлично работает, поскольку в этом нет ничего особенного.
Я просто хочу, чтобы найти способ, чтобы сделать то, что я делаю, без необходимости вводить
if row[0] and row[1] and row[2] and..
.
говорят, что максимум строки [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 all (int (row [n]) + i == int (строка [n + 1]) для n в диапазоне (4)): ...' – khelwood
«Если решение существует, я бы предпочитают, если он рекурсивный, потому что я изо всех сил стараюсь избавиться от циклов в моем коде ». *Зачем*? Рекурсия не является одним из сильных костюмов питона. Обычно вы хотите пойти * другим способом: удалить рекурсию и заменить ее итеративным подходом. – jme
Вы пытаетесь увидеть, имеет ли значение все в определенной строке одно значение? – radicalmatt