我有一个包含4列的数据集,我已经打开,读取并将每列变成键/字典,我试图过滤掉以某个字母开头的任何数据,例如对于键DA,此键中带有某个起始字母(例如E)的任何值都将导致该行被删除。我该怎么做呢?
答案 0 :(得分:1)
您可以使用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))