strimp python3 español clean characters python string strip

python3 - strip python 3 español



String.strip() en Python (5)

Mientras aprendía sobre python, encontré este código, que toma un archivo de texto, divide cada línea en una matriz y la inserta en un diccionario personalizado, donde la matriz [0] es la clave y la matriz [1] es el valor

my_dict = {} infile = open("file.txt") for line in infile: #line = line.strip() #parts = [p.strip() for p in line.split("/t")] parts = [p for p in line.split("/t")] my_dict[parts[0]] = parts[1] print line for key in my_dict: print "key: " + key + "/t" + "value " + my_dict[key]

Ejecuté el programa con las líneas comentadas de vez en cuando y obtuve el mismo resultado. (por supuesto reemplazando la segunda línea comentada con la línea debajo de ella). Me parece que hacer una tira () es opcional ¿Es mejor práctica dejarlo adentro?


En este caso, puede obtener algunas diferencias. Considera una línea como:

"foo/tbar "

En este caso, si se strip , obtendrá {"foo":"bar"} como entrada de diccionario. Si no te desnudas, obtendrás {"foo":"bar "} (note el espacio extra al final)

Tenga en cuenta que si usa line.split() lugar de line.split(''/t'') , se dividirá en cada carácter de espacio en blanco y la "separación" se realizará durante la división automática. En otras palabras:

line.strip().split()

siempre es idéntico a:

line.split()

pero:

line.strip().split(delimiter)

No es necesariamente equivalente a:

line.split(delimiter)


No, es mejor práctica dejarlos fuera.

Sin strip (), puede tener claves y valores vacíos:

apples<tab>round, fruity things oranges<tab>round, fruity things bananas<tab>

Sin strip (), bananas está presente en el diccionario pero con una cadena vacía como valor. Con strip (), este código lanzará una excepción porque elimina la pestaña de la línea banana.


Si puede comentar el código y su programa todavía funciona, entonces sí, ese código era opcional.

.strip() sin argumentos (o None como el primer argumento) elimina todos los espacios en blanco al inicio y al final, incluidos los espacios, las pestañas, las nuevas líneas y los retornos de carro. Dejarlo no hace ningún daño y le permite a su programa lidiar con espacios en blanco adicionales inesperados que se insertan en el archivo.

Por ejemplo, al usar .strip() , las siguientes dos líneas en un archivo conducirían al mismo resultado final:

foo/tbar /n foo/tbar/n

Yo diría que dejarlo en.


strip elimina el espacio en blanco desde el principio y el final de la cadena. Si quieres el espacio en blanco, no llames strip.


strip no hace nada, pero elimina el espacio en blanco en su cadena. Si desea eliminar el espacio en blanco adicional de la parte delantera y trasera de la cadena, puede usar la tira.

La cadena de ejemplo que puede ilustrar esto es esto:

In [2]: x = "something /t like /t this" In [4]: x.split(''/t'') Out[4]: [''something '', '' like '', '' this'']

Vea, incluso después de dividir con /t hay espacios en blanco adicionales en el primer y segundo elemento que pueden eliminarse usando la tira en su código.