Удаление данных из словаря по начальной букве - PullRequest
0 голосов
/ 16 октября 2018

У меня есть набор данных с 4 столбцами, я уже открыл, прочитал и превратил каждый столбец в ключ / словарь, я пытаюсь отфильтровать любые данные, которые начинаются с определенной буквы, например, для ключа DA, любойзначение в этом ключе с определенной начальной буквой (например, E) приведет к удалению строки.Как я могу сделать это?

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете использовать функцию startswith, чтобы проверить, начинается ли строка с определенной буквы.Так что в вашем случае это может быть что-то вроде следующего:

list_dictionary = [
    {'KeyYa': 'abc', 'KeyDa': 'def', 'KeyBa': 'ghi', 'KeySa': 'jkl'},
    {'KeyYa': 'abc', 'KeyDa': 'Edef', 'KeyBa': 'ghi', 'KeySa': 'jkl'},
    {'KeyYa': 'abc', 'KeyDa': 'Gdef', 'KeyBa': 'ghi', 'KeySa': 'jkl'},
    {'KeyYa': 'abc', 'KeyDa': 'Edef', 'KeyBa': 'ghi', 'KeySa': 'jkl'}
]

filtered = []
for line_dict in list_dictionary:
    if not line_dict['KeyDa'].startswith('E'):
        filtered.append(line_dict)

print(filtered)

Это печатает:

[{'KeyDa': 'def', 'KeyYa': 'abc', 'KeyBa': 'ghi', 'KeySa': 'jkl'}, {'KeyDa': 'Gdef', 'KeyYa': 'abc', 'KeyBa': 'ghi', 'KeySa': 'jkl'}]

Если вам удобны функции filter и lambda,Вы также можете сделать это кратко, как это:

filtered = list(filter(lambda line: not line['KeyDa'].startswith('E'), list_dictionary))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...