7

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
  • 1,115
  • 3
  • 13
  • 30

1 Answers1

10

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
  • 159,742
  • 34
  • 281
  • 339