Skip to main content
added 227 characters in body
Source Link
utdemir
  • 27.3k
  • 11
  • 65
  • 82

A little benchmark:

>>> a = lambda: "{} World".format("Hello") >>> b = lambda: "Hello" + " World" >>> c = lambda: "%s World" % "Hello" >>> d = lambda: "".join(("Hello", " World")) >>> a(), b(), c(), d() ('Hello World', 'Hello World', 'Hello World', 'Hello World') >>> timeit.timeit(a) 0.7830071449279785 >>> timeit.timeit(b) 0.18782711029052734 >>> timeit.timeit(c) 0.18806695938110352 >>> timeit.timeit(d) 0.3966488838195801 

Seems like b ancand c isare fastest, after d, an surprisingly a is slowest.

But, if you don't do a lot of processing, it doesn't really matter which one to use, just it is better not to mix them.

I personally prefer "".join for just simple concentenations, and str.format for placing values, like "Hello, my name is {}.".format(name).

There was a rumor that % formatting will be deprecated and removed in Python 3, but it didn't.

A little benchmark:

>>> a = lambda: "{} World".format("Hello") >>> b = lambda: "Hello" + " World" >>> c = lambda: "%s World" % "Hello" >>> d = lambda: "".join(("Hello", " World")) >>> a(), b(), c(), d() ('Hello World', 'Hello World', 'Hello World', 'Hello World') >>> timeit.timeit(a) 0.7830071449279785 >>> timeit.timeit(b) 0.18782711029052734 >>> timeit.timeit(c) 0.18806695938110352 >>> timeit.timeit(d) 0.3966488838195801 

Seems like b anc c is fastest, after d, an surprisingly a is slowest.

But I personally prefer "".join for simple concentenations, and str.format for placing values, like "Hello, my name is {}.".format(name).

A little benchmark:

>>> a = lambda: "{} World".format("Hello") >>> b = lambda: "Hello" + " World" >>> c = lambda: "%s World" % "Hello" >>> d = lambda: "".join(("Hello", " World")) >>> a(), b(), c(), d() ('Hello World', 'Hello World', 'Hello World', 'Hello World') >>> timeit.timeit(a) 0.7830071449279785 >>> timeit.timeit(b) 0.18782711029052734 >>> timeit.timeit(c) 0.18806695938110352 >>> timeit.timeit(d) 0.3966488838195801 

Seems like b and c are fastest, after d, an surprisingly a is slowest.

But, if you don't do a lot of processing, it doesn't really matter which one to use, just it is better not to mix them.

I personally prefer "".join for just simple concentenations, and str.format for placing values, like "Hello, my name is {}.".format(name).

There was a rumor that % formatting will be deprecated and removed in Python 3, but it didn't.

Source Link
utdemir
  • 27.3k
  • 11
  • 65
  • 82

A little benchmark:

>>> a = lambda: "{} World".format("Hello") >>> b = lambda: "Hello" + " World" >>> c = lambda: "%s World" % "Hello" >>> d = lambda: "".join(("Hello", " World")) >>> a(), b(), c(), d() ('Hello World', 'Hello World', 'Hello World', 'Hello World') >>> timeit.timeit(a) 0.7830071449279785 >>> timeit.timeit(b) 0.18782711029052734 >>> timeit.timeit(c) 0.18806695938110352 >>> timeit.timeit(d) 0.3966488838195801 

Seems like b anc c is fastest, after d, an surprisingly a is slowest.

But I personally prefer "".join for simple concentenations, and str.format for placing values, like "Hello, my name is {}.".format(name).