Pesquisa de site

Python - Removendo Dicionário da lista de Dicionários


Dicionário é um recurso muito comumente usado do python, que é usado para armazenar dados dentro dele conforme a necessidade do usuário. Outro procedimento típico envolve editar ou manipular esses dados. Para se tornar um programador produtivo e rápido, você precisa descobrir como se livrar de um dicionário de uma lista de dicionários. Existem muitas técnicas para remover um dicionário da lista de dicionários, que serão abordadas neste artigo.

Diferentes métodos para remover dicionário da lista de dicionários

Método de loop

Especificaremos o dicionário que será removido da lista de dicionários e então criaremos uma condição usando if() para fornecer um argumento para remover o dicionário da lista de dicionários. Podemos entender de forma mais clara através do seguinte exemplo:

Exemplo

# Dictionaries
Cities = [
    {"City": "Bangalore", "location": "India"},
    {"City": "Toronto", "location": "Canada"},
    {"City": "Liverpool", "location": "England"},
    {"City": "kano", "location": "Nigeria"},
    {"City": "Sydney", "location": "Australia"},
    {"City": "Berlin", "location": "Germany"},
    {"City": "New York", "location": "USA"}
]

Remove = "Liverpool"  #Specifying the dictionary to be removed

for city in Cities:  # Checking all the different dictionaries
    if city["City"] == Remove: #Creating a condition 
        Cities.remove(city)   #If the condition is satisfied remove() method will be used

print(Cities)  #Display the output after removing the dictionary

Saída

A saída do programa será a seguinte:

[{'City': 'Bangalore', 'location': 'India'}, {'City': 'Toronto', 'location': 'Canada'}, {'City': 'kano', 'location': 'Nigeria'}, {'City': 'Sydney', 'location': 'Australia'}, {'City': 'Berlin', 'location': 'Germany'}, {'City': 'New York', 'location': 'USA'}]  

Compreensão de lista

Usando o método de compreensão de lista, removeremos o dicionário específico aplicando a condição e então poderemos criar uma nova lista da lista modificada de dicionários sem a presença do dicionário especificado. Podemos entendê-lo mais claramente através do seguinte exemplo:

Exemplo

#Dictionaries
Cities = [
    {"City": "Bangalore", "location": "India"},
    {"City": "Toronto", "location": "Canada"},
    {"City": "Liverpool", "location": "England"},
    {"City": "kano", "location": "Nigeria"},
    {"City": "Sydney", "location": "Australia"},
    {"City": "Berlin", "location": "Germany"},
    {"City": "New York", "location": "USA"}
]

Remove = "Liverpool"  #Specifying Dictionary To Be Removed

Cities = [city for city in Cities if city["City"] != Remove]  #Creating a new list and specifying the condition to remove the unwanted dictionary

print(Cities)  #Display The Updated Output

Saída

A saída do programa acima será a seguinte:

[{'City': 'Bangalore', 'location': 'India'}, {'City': 'Toronto', 'location': 'Canada'}, {'City': 'kano', 'location': 'Nigeria'}, {'City': 'Sydney', 'location': 'Australia'}, {'City': 'Berlin', 'location': 'Germany'}, {'City': 'New York', 'location': 'USA'}]  

Alterando a lista original

Neste método, não criamos nenhuma lista nova e, em vez disso, fazemos alterações diretamente na lista original de dicionários. Então, isso torna o trabalho fácil e rápido e também não é feita duplicação de dados. Podemos entendê-lo mais claramente através do seguinte exemplo:

Exemplo

# Dictionaries
Cities = [
    {"City": "Bangalore", "location": "India"},
    {"City": "Toronto", "location": "Canada"},
    {"City": "Liverpool", "location": "England"},
    {"City": "kano", "location": "Nigeria"},
    {"City": "Sydney", "location": "Australia"},
    {"City": "Berlin", "location": "Germany"},
    {"City": "New York", "location": "USA"}
]

for City in Cities:  #We will specify a condition
    if City.get("location") == 'England':   #If the location is England
        Cities.remove(City)  #Remove the dictionary with location as England

print(Cities) #Display The Modified Output

Saída

A saída do código acima será a seguinte:

[{'City': 'Bangalore', 'location': 'India'}, {'City': 'Toronto', 'location': 'Canada'}, {'City': 'kano', 'location': 'Nigeria'}, {'City': 'Sydney', 'location': 'Australia'}, {'City': 'Berlin', 'location': 'Germany'}, {'City': 'New York', 'location': 'USA'}] 

Função de filtro

Como o nome sugere, simplesmente aplicaremos um filtro para especificar o dicionário a ser removido da lista de dicionários. Podemos entendê-lo melhor através do seguinte exemplo:

Exemplo

#Dictionaries
Cities = [
    {"City": "Bangalore", "location": "India"},
    {"City": "Toronto", "location": "Canada"},
    {"City": "Liverpool", "location": "England"},
    {"City": "kano", "location": "Nigeria"},
    {"City": "Sydney", "location": "Australia"},
    {"City": "Berlin", "location": "Germany"},
    {"City": "New York", "location": "USA"}
]

new_dictionary = list(filter(lambda City: City.get("location") != 'England', Cities))  # We specified a condition that if the location is England is found from the list then it is to be filtered out and removed from the list of dictionaries

print(new_dictionary)  #Display the Modified Output

Saída

A saída do programa acima será a seguinte:

[{'City': 'Bangalore', 'location': 'India'}, {'City': 'Toronto', 'location': 'Canada'}, {'City': 'kano', 'location': 'Nigeria'}, {'City': 'Sydney', 'location': 'Australia'}, {'City': 'Berlin', 'location': 'Germany'}, {'City': 'New York', 'location': 'USA'}]   

Indexação de lista

Este método é usado apenas no caso de listas pequenas de dicionários quando você sabe a posição exata do dicionário a ser removido. Então você só precisa especificar a posição do dicionário para removê-lo. Vamos dar um exemplo para entender mais claramente:

Exemplo

#Dictionaries
Cities = [
    {"City": "Bangalore", "location": "India"},
    {"City": "Toronto", "location": "Canada"},
    {"City": "Liverpool", "location": "England"},
    {"City": "kano", "location": "Nigeria"},
    {"City": "Sydney", "location": "Australia"},
    {"City": "Berlin", "location": "Germany"},
    {"City": "New York", "location": "USA"}
]

dictionary_remove= 2  #It specifies the position of the dictionary to be removed
#The index number starts from 0
del Cities[dictionary_remove]  #It commands to delete the dictionary in specified index number

print(Cities)  #Displays the Modified Output

Saída

A saída do programa acima será a seguinte:

[{'City': 'Bangalore', 'location': 'India'}, {'City': 'Toronto', 'location': 'Canada'}, {'City': 'kano', 'location': 'Nigeria'}, {'City': 'Sydney', 'location': 'Australia'}, {'City': 'Berlin', 'location': 'Germany'}, {'City': 'New York', 'location': 'USA'}]  

Conclusão

Ao trabalhar com grandes quantidades de dados, alterar os dados é uma etapa necessária no processo. Portanto, é fundamental estar atento às diversas técnicas para implementar rapidamente as modificações.

Este artigo detalha todas as maneiras possíveis de remover um dicionário de uma lista de dicionários incluída em uma fonte de dados. Ao trabalhar neste tipo de abordagem, você deve estar atento, pois existe a possibilidade de erros de dados que podem resultar na perda de seus dados. Como resultado, é essencial fazer um backup dos seus dados antes de implementar qualquer alteração neles.

Artigos relacionados: