5

Exist a faster way to merge two deques than this?

# a, b are two deques. The maximum length 
# of a is greater than the current length 
# of a plus the current length of b

while len(b):
  a.append(b.popleft())

Note that I'm not interested in preserving input deques, I'm only interested in having the merged one as fast as possible.

gvgramazio
  • 975
  • 2
  • 12
  • 29

1 Answers1

8

There's no need for elementwise appending, you can just use +=:

from collections import deque

a = deque([1, 2, 3])
b = deque([4, 5, 6])

a += b

print(a)

deque([1, 2, 3, 4, 5, 6])
jpp
  • 147,904
  • 31
  • 244
  • 302