Как я выполняю итерации строк и столбцов многомерного массива?

Вы можете выполнить это с использованием регулярных выражений и без них. Вы можете просто добавить символ '-' в text_to_search и использовать поиск для поиска новой строки

lines = ['x  = vR32_ALEX - vR33_ALAN; \n',
 'y = vR33_ALAN; \n']

text_to_search = 'vR33_ALAN'
replacement_text = 'vR33_ALAN*c'

for line in lines:
  if line.find('- '+text_to_search)!=-1:
    print(line)
  else:
    print(line.replace(text_to_search, replacement_text),end='') 

Или вы можете использовать модуль re, как предложено, для этого вам нужно сгенерировать шаблон для искать, как вы ищете '-' или добавить text_to_search, как и раньше. (.*) указывает, что не имеет значения символы до и после шаблона.

import re 
lines = ['x  = vR32_ALEX - vR33_ALAN; \n',
 'y = vR33_ALAN; \n']

for line in lines:
  if re.match('(.*)'+' - '+'(.*)',line):
    print(line)
  else:
    print(line.replace(text_to_search, replacement_text),end='')  

Шаблон '(.*)'+' - '+text_to_search+'(.*)' также должен работать. Надеюсь, это поможет

6
задан Michael Hedgpeth 7 May 2009 в 02:36
поделиться

3 ответа

Это зависит от того, какие столбцы и строки вам подходят, но вы можете использовать этот фрагмент кода:

for (int i = 0; i < values.GetLength(0); i++)
            Console.WriteLine(values[i, 0]);

И:

for (int i = 0; i < values.GetLength(1); i++)
            Console.WriteLine(values[0, i]);
13
ответ дан 8 December 2019 в 14:47
поделиться

Вот код для итерации по первому и второму измерениям массива двухмерного массива. (На самом деле "строк" и "столбцов" не существует, потому что многомерный массив может иметь любое количество измерений)

object[,] values = new object[5,5];
int rowIWant = 3; //Make sure this is less than values.GetLength(0);
//Look at one "row"
for(int i = 0; i < values.GetLength(1); i++
{
    //Do something here with values[rowIWant, i];
}

int columnIWant = 2; //Make sure this is less than values.GetLength(1);
//Look at one "column"
for(int i = 0; i < values.GetLength(0); i++
{
    //Do something here values[i, columnIWant];
}
2
ответ дан 8 December 2019 в 14:47
поделиться

В многомерных массивах нет строк и столбцов в том виде, в котором вы к ним обращаетесь - у них просто есть несколько индексов, используемых для доступа к значениям. Итерация по такому массиву будет выполняться с использованием вложенных циклов for, и если вы хотите выполнить определенные вычисления на основе измерения, вы должны соответствующим образом изменить порядок циклов.

Другой вариант, если вам нужно только выполнить итерацию в одном измерении, это использовать массив массивов вместо многомерного массива, например:

object[][] values;
1
ответ дан 8 December 2019 в 14:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: