Я ударил стену и нуждаюсь в некоторой помощи.Поиск индекса элемента через REGEX в Python
Контекст: У меня есть список списков строк.
Matrix = [['444'],
['23%'],
['A']]
На данный момент, у нас есть список графов в положении 0, в процентах на 1 и Значение теста на 2.
Число списков в списке изменяется от 3 до 2: 1, время от ко времени. И тип строки в списке меняет позицию. Поэтому я не могу предположить, что индекс 0 всегда будет Counts и процент будет равен 1 и т.д.
Следовательно, я хотел найти способ динамического определения, где процент, например, находится в матрице, и если его даже в там.
Вот что я написал до сих пор:
for i, row in enumerate(Matrix):
for cell in row:
if "%" in cell:
percent = i
print percent
for i, row in enumerate(Matrix):
for cell in row:
if re.search('[a-zA-Z]', cell):
sigtest = i
print sigtest
for i, row in enumerate(Matrix):
for cell in row:
if re.search('[0-9]', cell):
count = i
print count
Выход:
1
2
0
1
Проблема: Как вы можете видеть, что проблема находится с последним для цикла, который фиксирует факт что индекс 0 и 1 содержат числа.
Что нужно: путь для последнего цикла для поиска только чисел и цифр, элемент содержит числа и символ, этот индекс не должен включаться.
Надеюсь, что имеет смысл!
благодаря
Вы используете только неподписанное число. Вы можете начать с '(- | +)?'. – elnabo
@ Ashwini, спасибо за это. Я тестировал его, и проблема остается. Если я хочу найти индекс процентной строки в списке (Матрица), ваш код даст мне индекс 0 и 1 вместо 1. Я предполагаю, потому что индекс 0 также содержит числа. В идеале я хочу запустить одну функцию, чтобы получить индекс количества, процента и значения. –
@ Boosted_d16 Нет, этого не будет, для '444' мое регулярное выражение вернет 'False'. 'bool (re.search (r '^ [0-9] +% $', '444'))' -> 'False'. Вы делаете что-то неправильно. –