Во время задания этого вопроса я использую Python 3.8
Когда я говорю «эффективный», я имею в виду только скорость, с которой соединяются строки или, если говорить более технически, я спрашиваю о сложности времени, а не о сложности пространства.
Единственные методы, которые я могу придумать на данный момент, - это следующие 3, учитывая, что:
a = 'start'
b = ' end'
Метод 1
result = a + b
Метод 2
result = ''.join((a, b))
Метод 3
result = '{0}{1}'.format(a, b)
Я хочу знать, какой из этих методов быстрее, или есть ли другие методы, которые являются более эффективными. Кроме того, если вы знаете, что любой из этих методов работает по-разному с большим количеством строк или более длинных строк, укажите это в своем ответе.
Edit
После просмотра всех комментариев и ответы, я узнал несколько новых способов объединения строк, а также я узнал о библиотеке timeit . Я сообщу о своих личных находках ниже:
>>> import timeit
>>> print(timeit.Timer('result = a + b', setup='a = "start"; b = " end"').timeit(number=10000))
0.0005306000000473432
>>> print(timeit.Timer('result = "".join((a, b))', setup='a = "start"; b = " end"').timeit(number=10000))
0.0011297000000354274
>>> print(timeit.Timer('result = "{0}{1}".format(a, b)', setup='a = "start"; b = " end"').timeit(number=10000))
0.002327799999989111
>>> print(timeit.Timer('result = f"{a}{b}"', setup='a = "start"; b = " end"').timeit(number=10000))
0.0005772000000092703
>>> print(timeit.Timer('result = "%s%s" % (a, b)', setup='a = "start"; b = " end"').timeit(number=10000))
0.0017815999999584164
Кажется, что для этих небольших строк традиционный a + b
метод является самым быстрым для конкатенации строк. Спасибо за все ответы!