Como você exclui um item em uma lista de listas com base em uma condição em python?

nemui

por exemplo

list = [[1,2,3], [4,5,6,3], [3,7,8,9,10,11,12]]

Eu gostaria de excluir todas as ocorrências do número 3. A nova lista deve ser:

[[1, 2], [4, 5, 6], [7, 8, 9, 10, 11, 12]]
gmdev

Editar

Para listas irregulares e mais complicadas:

def delete_threes(l):
    nl = []
    for s in l:
        if isinstance(s, list):
            nl.append(delete_threes(s))
        elif s != 3:
            nl.append(s)
    return nl

Acima está uma função recursiva que é capaz de remover instâncias de 3de uma lista com uma forma irregular.

Primeiro, iteramos pela lista e verificamos se o elemento é uma sublista ou outro tipo. Se for uma lista, precisamos excluir recursivamente os 3da lista também. É daí que nl.append(delete_threes(s))vem o. Essencialmente, isso passa a sublista para a função novamente e, em seguida, acrescenta a lista resultante com os 3removidos à nova lista nl,.

Original

Você pode fazer isso com uma linha usando uma compreensão de lista:

l = [[1,2,3], [4,5,6,3], [3,7,8,9,10,11,12]]

filtered_l = [[i for i in sub if i != 3] for sub in l]

Resultado:

[[1, 2], [4, 5, 6], [7, 8, 9, 10, 11, 12]]

Se você não quer um one-liner, você pode ir para este bastante feio for-loop:

filtered_l = []
for sub in l:
    filtered_sub = []
    for i in sub:
        if i != 3:
            filtered_sub.append(i)
    filtered_l.append(filtered_sub)

Outra observação: em sua pergunta, você define a variável chamada list. Não é recomendável nomear suas variáveis ​​/ classes / funções da mesma forma que integradas, pois isso pode causar código ilegível e muitas dores de cabeça após rastrear os bugs que isso causa. Escolha algo mais simples, como nums_listou apenas l!

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como você seleciona um subconjunto de uma matriz com base em uma condição em Julia

Como filtrar uma lista de listas com base em um conjunto variável de condições com Python?

Em Python, como faço para fatiar uma lista com base em um item da lista?

Em Python, como faço para fatiar uma lista com base em um item da lista?

Como combinar dois elementos de uma lista com base em uma determinada condição em python

Melhor maneira de separar uma lista em duas novas listas com base em uma condição

Lista de listas em uma lista de listas de um comprimento específico com condição

Como encontrar as 3 principais listas em uma lista de lista com base no último elemento em python?

Criando uma lista de listas com base em condições

Qual é a melhor maneira de separar uma única lista em várias listas com base em um padrão em Python?

Ignorar elementos em uma condição com base em uma compreensão de lista em python

Lista de processos Python com base em uma condição

Python: divida uma lista em várias listas com base em um subconjunto de elementos

criar uma lista de listas com base em uma condição

Existe uma função interna para dividir uma lista de objetos em duas listas com base em uma condição?

Como ocultar um item filho em um recyclerView com base em uma condição?

Como você permuta em uma lista de listas (de strings)? Você pode fazer isso com um conjunto?

Python: dividir uma lista com base em uma condição?

Como você exclui uma coluna de valores em um arquivo csv, mas não o primeiro item?

Como você filtraria uma série de objetos com base em uma condição

Como você filtraria uma série de objetos com base em uma condição

Como agrupar uma lista de objetos em um dicionário de listas com base no id

Existe uma maneira elegante de encontrar um item em uma lista de listas com várias camadas em python

Como listar dois itens de duas listas Python diferentes como um item em uma nova lista?

Obtenha o item em uma lista de lista para comparar com um valor enquanto itera as duas listas Python

Em Python, como você acrescentaria valores a números em uma lista com base em regras?

O BigQuery SQL exclui linhas de uma tabela de destino com base em uma condição

Como nivelar uma lista de listas com um separador conhecido em uma única operação

Como concatenar com base em uma condição em python

TOP lista

quentelabel

Arquivo