Python Проверка формата строк и переменных - PullRequest
0 голосов
/ 18 июня 2020

У меня есть список:

data = ["data 01", "data 02", "data 03"]

Я хочу проверить, содержит ли каждый элемент в списке строку «данные», а также добавить текст после данных (например, 01, 02, 03) в другой список. Ниже приведен код, который у меня есть, но я считаю его неэффективным.

data_2 = []

for item in data:
    if ("data" in item):
        data_2.append(item.replace("data", "").strip())

Есть ли способ проверить

if item == "data {}"

Где {} - числовая переменная. В качестве меры предосторожности при наличии такого элемента в списке данных, как ["нет данных"], где по ошибке добавляется строка "нет"?

Ответы [ 2 ]

2 голосов
/ 18 июня 2020

Вы можете использовать понимание списка:

data = ["data 01", "data 02", "data 03"]
d = [s.split('data ',1)[1] for s in data if 'data' in s and s.split('data ',1)[1].isdigit()]
print(d)

Вывод:

['01', '02', '03']
0 голосов
/ 18 июня 2020

используйте регулярное выражение, чтобы проверить, соответствует ли он всему шаблону.

import re

for item in data:
    result = re.match(r'data (\d+)$')
    if result:
        data_2.append(result.group(1))

result.group(1) будет содержать число, захваченное (\d+)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...