Tres métodos de concatenación de cadenas de Python comúnmente utilizados y más eficientes

En general, hay tres formas de concatenar cadenas en python:

Método 1:
Concatenar website=&39;python&39;+&39;tab&39;+&39;com&39; directamente a través del operador más (+)

Método 2:
generalmente hay tres formas de concatenar cadenas de Python:

  • 1: Conéctese directamente a través del operador más (+)
website = 'python' + 'baidu' + '.com'
  • 2: método de unión
listStr = ['python', 'baidu', '.com'] 
website = ''.join(listStr)
  • 3: reemplazar
 website = '%s%s%s' % ('python', 'baidu', '.com')

A continuación, hablemos de la diferencia entre los tres métodos.

  • El método 1
    es simple y fácil de usar, pero muchas personas en Internet dicen que este método es ineficiente. La razón por la que se dice que la operación de usar + para la concatenación de cadenas en python es ineficiente es porque las cadenas en python son tipos inmutables. Use +
    para conectar dos Cuando se genera una cadena, se generará una nueva cadena. Para generar una nueva cadena, debe volver a solicitar memoria. Cuando hay muchas cadenas que se agregan continuamente (a+b+c+d +e+f+…)
    , la baja eficiencia es inevitable, sí
  • El método 2
    es un poco más complicado de usar, pero es eficiente cuando se conectan varios caracteres y solo hay una aplicación de memoria. Y si se trata de conectar los personajes de la lista, este método debe ser la primera opción
  • Método 3
    Formateo de cadenas, este método se usa con mucha frecuencia, y también recomiendo usar este método

Los siguientes experimentos se utilizan para ilustrar la eficiencia de la concatenación de cadenas.

Caso número uno:

from time import time
def method1():
    t = time()
    for i in range(100000):
        s = 'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'+'python'
    print (time() - t)
def method2():
    t = time()
    for i in range(100000):
        s = ''.join(['python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python','python'])
    print (time() -t)
method1()
method2()

Caso 2:

from time import time
def method1():
    t = time()
    for i in range(100000):
        s = 'python'+'python'+'python'+'python'
    print (time() - t)
def method2():
    t = time()
    for i in range(100000):
        s = ''.join(['python','python','python','python'])
    print (time() -t)
method1()
method2()

resultado:

0.002992391586303711
0.01495981216430664

Los dos experimentos anteriores tienen resultados completamente diferentes. La única diferencia entre los dos experimentos es: el número de conexiones de cadena.

Conclusión:
la baja eficiencia de la conexión del signo más se produce cuando se conectan varias cadenas de forma continua. Si el número de conexiones es pequeño, la eficiencia de la conexión del signo más es mayor que la de la conexión de unión.

Supongo que te gusta

Origin blog.csdn.net/m0_67575344/article/details/123908179
Recomendado
Clasificación