¿Cómo sustituir parte de una cadena de una lista con otra parte de otra lista? -- python campo con python-3.x campo con jupyter-notebook camp Relacionados El problema

How to substitute part of a string from one list with another part from another list?


0
vote

problema

Español

Hay una manera que me permita sustituir parte de una cadena de una lista con otra parte de otra lista basada en alguna condición (copia-pasta) sin afectar el resto de ella. Tengo dos listas

  correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2'] wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\BR4,1','SJD8|75RZ4,1','UES915*GS5,1']   

Quiero comparar entre la lista correct_Format y Iglesh_Format, basada en una condtiotion si la parte verdadera del formato incorrecto se sustituirá con una parte del valor correct_Format, por lo que 9988777661 debería convertirse Sólo BWL0520BG6 debe cambiarse. El 1 en 'BWL0520BG6,1' debe ser excluido. 'CBZ3132BR1,2c' debe convertirse 'CBZ3132Bu1,2c' Solo CBZ3132BR1 debe cambiarse. El 2c en 'BWL0520BG6,1'0 debe ser excluido. Y esto debe aplicarse al resto.

esto lo que he hecho hasta ahora

  'BWL0520BG6,1'1111  

Pero parece que no funciona correctamente, en lugar de copiar parte de la cadena, copia toda la cadena que resulta en resultados incorrectos

Original en ingles

Is there a way that allows me to substitute part of a string from one list with another part from another list based on some condition (copy-paste) without affecting the rest of it. I have two lists

correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2'] wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\\BR4,1','SJD8|75RZ4,1','UES915*GS5,1'] 

I want to compare between correct_format and wrong_format list, based on a condtiotion if true part of the wrong format will be substituted with part of the correct_format value so 'BWL0520BG6,1' should become 'BWx0520BG6,1' only BWL0520BG6 should be changed. the 1 in 'BWL0520BG6,1' should be excluded. 'CBZ3132BR1,2c' should become 'CBZ3132Bu1,2c' only CBZ3132BR1 should be changed. the 2c in 'CBZ3132BR1,2c' should be excluded. and this should be applied to the rest.

This what I have done so far

corrected = [] correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2'] wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\\BR4,1','SJD8|75RZ4,1','UES915*GS5,1']  def hamming_distance(s1, s2):     return sum(c1 != c2 for c1, c2 in zip(s1, s2))  for r in correct_format:     for i in wrong_format:         li_r = r.split(',')         li_i = i.split(',')         if  hamming_distance(li_r[0], li_i[0]) == 1:             corrected.append(r)             wrong_format.remove(i) 

but it seems not working properly, instead of copying part of the string it copies all of the string which results into incorrect results

        

Lista de respuestas

0
 
vote

Este es un enfoque usando enumerate y una iteración simple.

ex:

  correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2'] wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\BR4,1','SJD8|75RZ4,1','UES915*GS5,1']  for ind, v in enumerate(correct_format):     val = wrong_format[ind].split(",")      val[0] = v.split(",")[0]     wrong_format[ind] = ",".join(val)  print(wrong_format)   

Salida:

  ['BWx0520BG6,1',  'CBZ3132Bu1,2c',  'CKZ3134BR4,1',  'SJD8575RZ4,1',  'UES9151GS5,1']   
 

This is one approach using enumerate and a simple iteration.

Ex:

correct_format = ['BWx0520BG6,2x','CBZ3132Bu1,3','CKZ3134BR4,2','SJD8575RZ4,2','UES9151GS5,2'] wrong_format = ['BWL0520BG6,1','CBZ3132BR1,2c','CKZ313\\BR4,1','SJD8|75RZ4,1','UES915*GS5,1']  for ind, v in enumerate(correct_format):     val = wrong_format[ind].split(",")      val[0] = v.split(",")[0]     wrong_format[ind] = ",".join(val)  print(wrong_format) 

Output:

['BWx0520BG6,1',  'CBZ3132Bu1,2c',  'CKZ3134BR4,1',  'SJD8575RZ4,1',  'UES9151GS5,1'] 
 
 
         
         

Relacionados problema

2  Camino relativo que no trabaja en Pandas Python en el cuaderno Jupyter  ( Relative path not working in pandas python in jupyter notebook ) 
La estructura de mi carpeta es: datasets/file.csv source/code.ipynb desde dentro quiero acceder al archivo llamado file.csv. import pandas as pd dat...

2  Error de Anaconda lanzando Python 3 Jupyter Notebook  ( Anaconda error launching python 3 jupyter notebook ) 
Estoy recibiendo un error cuando intento abrir un portátil Python 3 usando Jupyter después de instalar Anaconda3.5. No hay problema con los cuadernos de Pytho...

0  Velocidad reducida Icono Ampesado en el cuaderno Jupyter  ( Speed reduced icon appering on jupyter notebook ) 
Esta cosa aparece continuamente cuando empiezo a trabajar en el portátil Jupyter. Cada vez que abro algún archivo en ella, esta cosa aparece después de algún ...

0  Necesito ayuda para configurar IntelliSense para Python en VSCODE  ( Need help in configuring intellisense for python in vscode ) 
Necesito ayuda para configurar IntelliSense, Autocompletar y código de código para Python en VSCODE De mi experiencia personal, funciona solo parcialmente. ...

0  El tamaño de WordCloud no aumenta a pesar de una máscara grande  ( Wordcloud size not increasing despite a big mask ) 
He estado intentando esto desde la mañana y rompiendo mi cabeza ... nada parece aumentar el tamaño de la producción en las notas de Jupyter. A pesar de la más...

0  ¿Cómo puedo usar Djnatientswing Jwebbrowser como el navegador para el portátil Jupyter?  ( How can i use djnativeswing jwebbrowser as the browser for the jupyter notebook ) 
Estoy usando chrriis.dj.natswing.swtimpl.components.jwebbrowser en mi aplicación de swing para abrir la página web de un jupyter-cuaderno. Ahora, mi problema ...

0  Leer grandes archivos JSON.GZ bloquea el kernel  ( Reading large json gz files crashes kernel ) 
Tengo un conjunto de datos que es de 7GB de datos. Lo estoy leyendo de la siguiente manera: path = direc + '2018-01-*.*' ddf = dd.read_json(path,blocksize=...

0  ¿Cómo reducir el espacio en blanco vertical entre las células portátiles de Ipython?  ( How to reduce the vertical white space between ipython notebook cells ) 
Enseñe una clase usando Ipython / Jupyter Notebook en una computadora púbica. Cuando se proyecta el cuaderno, el texto es demasiado pequeño para que los estud...

1  Cómo vincular a VirutualEnvwrapper con el portátil Jupyter  ( How to link virutualenvwrapper with jupyter notebook ) 
Tengo una configuración VENV / VIRTUALENVWRAPPER en un directorio. Después de empezar a trabajar en el VENV, luego creo un portátil Jupyter dentro del directo...

1  ¿Hay alguna manera de ocultar el código en celdas individuales en Ipython Notebook?  ( Is there a way to hide code in individual cells in ipython notebook ) 
Sé que uno puede ocultar el código en todo el cuaderno: solo examinó esta pregunta y una respuesta magnífica ¿Cómo ocultar el código de celdas en Ipython Not...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos