在Python中删除数组中的值

时间:2016-06-27 16:18:44

标签: python arrays list dictionary append

我通过这样做为我的输出创建了一个数组:

for i in nameList
    test_array.append({'Name': i, 'Email': memberMail, 'Department': memberDepartment})

但是,稍后在代码中,我必须删除test_array中的指定值,具体取决于他们的电子邮件。之后,我可以轻松地打印出我需要的csv文件。

如何从此类词典列表中删除特定条目?

对于那些好奇的人,当我打印数组时,它看起来像这样:

[{'Department': 'Public Works', 'Email': 'joe@xyz.gov', 'Name': 'Joe'}, {'Department': 'Infrastructure', 'Email': 'bob@xyz.gov', 'Name': 'Bob'}, {'Department': 'IT', 'Email': 'suzanne@xyz.gov', 'Name': 'Suzanne'}]

4 个答案:

答案 0 :(得分:1)

当您不想修改test_array

filtered_test_array = filter(lambda entry: entry['Email'] != 'email@example.com', test_array)

答案 1 :(得分:0)

试试这个:

 for i in range(0,len(nameList)):
        if nameList[i]['Email'] == 'abc@pqr.com" :
             index = i;

    del nameList[index];

答案 2 :(得分:0)

试试这样。

list_ = [{'Department': 'Public Works', 'Email': 'joe@xyz.gov', 'Name': 'Joe'}, {'Department': 'Infrastructure', 'Email': 'bob@xyz.gov', 'Name': 'Bob'}, {'Department': 'IT', 'Email': 'suzanne@xyz.gov', 'Name': 'Suzanne'}]
for val in list_:
    if val['Email'] == 'joe@xyz.gov':
        list_.remove(val)

结果

[{'Department': 'Infrastructure', 'Email': 'bob@xyz.gov', 'Name': 'Bob'},
 {'Department': 'IT', 'Email': 'suzanne@xyz.gov', 'Name': 'Suzanne'}]

答案 3 :(得分:0)

您可以迭代列表并删除唯一值或键。像这样:

for entry in test_array:
    if entry['Email'] == 'suzanne@xyz.gov':
        test_array.remove(entry)