【问题标题】:Deleting a value in an array in Python [duplicate]在Python中删除数组中的值[重复]
【发布时间】:2016-10-29 18:01:14
【问题描述】:

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

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'}]

【问题讨论】:

    标签: python arrays list dictionary append


    【解决方案1】:

    当你不想修改test_array

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

    【讨论】:

      【解决方案2】:

      试试这个:

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

      【讨论】:

        【解决方案3】:

        像这样试试。

        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'}]
        

        【讨论】:

          【解决方案4】:

          您可以遍历列表并删除唯一值或键。像这样的:

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

          【讨论】:

            猜你喜欢
            • 2014-10-10
            • 2019-10-19
            • 2021-09-30
            • 2021-12-15
            • 2021-08-26
            • 1970-01-01
            • 2021-07-29
            • 2021-04-02
            相关资源
            最近更新 更多