¿Cómo verificar y agregar de manera eficiente si un elemento no existe en una lista anidada?

luego

Tengo una enorme lista anidada cuyos elementos son cadenas de palabras con la siguiente forma:

[[0,'+','the','+','quick','+','brown','+','fox','+','jumps','over','+','the','+','lazy','+','dog','+',908]
...,
['Now','+','is','+', 'the','+', 'time','+', 'for','+', 'all','+', 67,'+', 'men']]

Sin embargo, identifiqué que hay algunos elementos sin +separador. Por ejemplo, en la sublista uno:

[0,'+','the','+','quick','+','brown','+','fox','+','jumps','over','+','the','+','lazy','+','dog','+',908]

Entre 'jumps','over'falta +. Para listas anidadas grandes con sublistas largas, ¿cuál sería la forma más eficiente de agregar el +separador entre elementos sin separador?

La salida esperada debería verse así:

[[0,'+','the','+','quick','+','brown','+','fox','+','jumps','+','over','+','the','+','lazy','+','dog','+',908]
    ...,
    ['Now','+','is','+', 'the','+', 'time','+', 'for','+', 'all','+', 67,'+', 'men']]
wcarhart

Un poco codicioso:

cleansed_lists = [[word for word in sentence if word != '+'] for sentence in nested_list]
result = []
for sentence in cleansed_lists:
    new_list = ['+'] * (2 * len(sentence) - 1)
    new_list[::2] = sentence
    result.append(new_list)

Complejidad del tiempo:

Suponga que Nes la longitud de su lista externa y nes la longitud promedio de cada una de sus listas internas (sus oraciones).

Línea 1 : iteramos a través de la lista externa una vez y cada lista interna una vez, usando operaciones O (1) (es decir if word != '+'). Por lo tanto, la línea 1 tiene una complejidad temporal de O (n * N) .

Líneas 3-6 : iteramos a través de nuestra lista externa una vez (Línea 3), el equivalente a una lista dos veces el tamaño de nuestra lista interna (Línea 4), y todos los demás elementos de una lista dos veces el tamaño de nuestra lista interna (Línea 5). Esto produce una complejidad de tiempo de O (N * (2n + n)) , que se simplifica a O (n * N) .

= O(n*N) + O(N*(2n+n))
= O(n*N) + O(N*3n)
= O(n*N) + O(N*n)
= O(n*N)

Por tanto, la complejidad final es O (n * N) .

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Cómo verificar si un elemento existe en una lista de cadenas y, si existe, obtener su índice

Código óptimo para verificar y agregar un elemento en una lista si está presente en una lista de diccionarios

¿Cómo verificar de manera eficiente si una lista de palabras está contenida en un marco de datos de Spark?

¿Cómo verificar si una matriz contiene un valor en brightscript de manera eficiente?

Algoritmo eficiente para verificar si un valor está en una lista de listas y recuperar el índice del elemento

Pruebe de manera eficiente si un elemento está en una lista ordenada de cadenas

Manera eficiente de verificar si un usuario tiene permisos de una lista y convertir los resultados a un diccionario

¿Hay alguna forma de averiguar si existe un elemento en una lista anidada?

¿Hay alguna forma de averiguar si existe un elemento en una lista anidada?

Cómo iterar sobre un diccionario anidado y verificar si existe una clave de una lista

¿Cómo saber si una lista de matrices contiene un elemento y agregar el recuento de resultados a HashMap en Java?

¿Cómo puedo agregar X módulo Y de manera eficiente a cada elemento en una matriz numpy?

¿Cómo puedo agregar X módulo Y de manera eficiente a cada elemento en una matriz numpy?

¿Cómo verificar si un número es un elemento de una lista en c #?

Cómo verificar si una cadena contiene un elemento de una lista en Python

¿Cómo verificar si el elemento de un atributo en particular existe en una columna?

Cómo verificar si existe una regla de validación en un elemento en javascript

¿Cómo verificar si el elemento de un atributo en particular existe en una columna?

Cómo verificar si el elemento existe dentro de una matriz anidada

Cómo verificar si el elemento existe dentro de una matriz anidada

¿Cómo tomar el primer elemento en una lista de Python y verificar si es Ninguno?

cómo verificar si existe una clave externa en otra tabla antes de agregar un registro

MATLAB: ¿Cómo verificar si un elemento de celda ya existe en una matriz de celdas?

¿Cómo puedo verificar si un elemento existe en una matriz de objetos usando lodash?

Cómo verificar si hay más de un elemento en una lista python

Python: ¿cómo verificar si una cadena contiene un elemento de una lista y sacar ese elemento?

Cómo verificar si existe un encabezado de columna y, si no, agregar una columna de encabezado - Google Sheet Apps Script

¿Cómo verificar si un número es primo de una manera más eficiente?

Manera eficiente de verificar si un transitable tiene más de 1 elemento en Scala

TOP Lista

CalienteEtiquetas

Archivo