Answer

Answer

t.me/python_tesst

Ответ:

Время на +: 0.5704808235168457

Время на join: 0.29478001594543457

Время на format: 0.6076076030731201

Время на %: 0.4983177185058594

Время на f-string: 0.2757294178009033

Объяснение:

Попробуем рассмотреть такой момент, как конкатенирование строк в Python. Здесь имеем ряд своих нюансов, которые ведут себя немного не так, как это может показаться, глядя на строчки незамысловатого кода. Как мы помним из синтаксиса существует несколько способов объединять строки. Но разные методы работы со строкам расходуют разный объем памяти и времени. Было введено понятие, как f-string с целью ускорить работу со строками.

Проведя dis.dis() для данного метода, можно заметить, что разные методы конкатенации вызывают разные состояния, которые в свою очередь различаются по реализации.

Код:

def test_str2():
  import time
  s1 = "Привет"
  s2 = "Всем"
  s3 = ","
  s4 = "Кто"
  s5 = "Это"
  s6 = "Читает"
 
  t = time.time()
  for _ in range(1000000):
    s = s1 + " " + s2 + " " + s3 + " " + s4 + " " + s5 + " " + s6
  r = time.time() - t
  print("Время на +: ", r)

  t = time.time()
  for _ in range(1000000):
    s = " ".join([s1, s2, s3, s4, s5, s6])
  r = time.time() - t
  print("Время на join: ", r)
   
  t = time.time()
  for _ in range(1000000):
    s = "{} {} {} {} {} {}".format(s1, s2, s3, s4, s5, s6)
  r = time.time() - t
  print("Время на format: ", r)

  t = time.time()
  for _ in range(1000000):
    s = "%s %s %s %s %s %s" % (s1, s2, s3, s4, s5, s6)
  r = time.time() - t
  print("Время на %: ", r)
   
  t = time.time()
  for _ in range(1000000):
    s = f"{s1} {s2} {s3} {s4} {s5} {s6}"
  r = time.time() - t
  print("Время на f-string: ", r)
test_str2()



Report Page