Чуть лучше было бы сделать `v = queue.popleft()` в начале цикла, и использовать `v` вместо `queue[0]`