Как мне скомпилировать все строки 2d массива, сопоставив определенный элемент? - PullRequest
0 голосов
/ 25 марта 2020

Итак, у меня есть 2d-массив, который выглядит примерно так:

[
    ["USER1", "2020-03-25 10:41", "hello there I like r/stackoverflow"],
    ["USER2", "2020-03-25 10:42", "I prefer r/programmerhumor"],
    ["USER3", "2020-03-25 10:42", "No, I don't like reddit"]
]

И я sh найду каждую строку, содержащую в себе сообщение, содержащее r/..., и верну целое строка. Следующая функция предназначена для извлечения всех сообщений, которые содержат ключевую фразу, но я не могу понять, как вернуть всю строку.

def get(messages, keyPhrase, column=2):
    r = re.compile("/"+keyPhrase+"/g")
    return list(filter(r.match, [message[column] for message in messages]))

Любая помощь будет оценена!

Редактировать : регулярное выражение также не работает, и я был бы признателен за помощь в этом

1 Ответ

1 голос
/ 25 марта 2020

Вам нужно передать полный массив данных как итеративный и извлечь сообщение в функции фильтра:

filter(lambda row: 'r/' in row[column], messages)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...