Q:

Remove all projectiles when moving to a different room

Im trying to make it so that when I move from room A to room B, all the projectiles in the room disappear. At the moment, if i shoot 3 projectiles right and then go left into a different room, the projectiles still appear on the screen until they are carried out of the screen dimensions. 
Using the all_sprites_list.remove(projectile) function allows me to remove one bullet at a time when moving from room to room.
For example, when i use that line of code, if there are currently 3 bullets on the screen and i move from room A to room B, one of the bullets on the screen is removed but the other 2 stay. Moving back to room A removes another bullet and once again moving to room B removes the third.
My question is, how can I remove all three bullets at the same time instead of the game removing a singular bullet when I change rooms? This is my event processing - i dont think any more code is necessary but let me know if it is.
# ---------- MAIN PROGRAM LOOP ---------- #

    while not done:

# --- Event Processing ---

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                done = True

# Controls
            elif event.type == pygame.KEYDOWN:
                projectile = None

                if event.key == pygame.K_LEFT:
                    projectile = ProjectileLeft("projectile.png", 0, 0)
                    projectile.rect.x = player.rect.x-15
                    projectile.rect.y = player.rect.y+33
                elif event.key == ord('a'):
                    player.changespeed(-7, 0)
                elif event.key == ord('d'):
                    player.changespeed(7, 0)
                elif event.key == ord('w'):
                    player.changespeed(0, -7)
                elif event.key == ord('s'):
                    player.changespeed(0, 7)

                if projectile:
                    projectile_list.add(projectile)

            elif event.type == pygame.KEYUP:
                if event.key == ord('a'):
                    player.changespeed(7, 0)
                elif event.key == ord('d'):
                    player.changespeed(-7, 0)
                elif event.key == ord('w'):
                    player.changespeed(0, 7)
                elif event.key == ord('s'):
                    player.changespeed(0, -7)

        all_sprites_list.update()
        projectile_list.update()

and this is my game logic;
player.move(current_room.wall_list)

if player.rect.x < -15:
    if current_room_no == 0:
        current_room_no = 3
        current_room = rooms[current_room_no]
        player.rect.x = 790
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)
    elif current_room_no == 3:
        current_room_no = 2
        current_room = rooms[current_room_no]
        player.rect.x = 790
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)
    elif current_room_no == 2:
        current_room_no = 1
        current_room = rooms[current_room_no]
        player.rect.x = 790
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)
    else:
        current_room_no = 0
        current_room = rooms[current_room_no]
        player.rect.x = 790
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)

if player.rect.x > 801:
    if current_room_no == 0:
        current_room_no = 1
        current_room = rooms[current_room_no]
        player.rect.x = 0
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)
    elif current_room_no == 1:
        current_room_no = 2
        current_room = rooms[current_room_no]
        player.rect.x = 0
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)
    elif current_room_no == 2:
        current_room_no = 3
        current_room = rooms[current_room_no]
        player.rect.x = 0
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)
    else:
        current_room_no = 0
        current_room = rooms[current_room_no]
        player.rect.x = 0
        projectile_list.remove(projectile)
        all_sprites_list.remove(projectile)

this is the end of my script:
# Load background to current room       
        screen.blit(current_room.background_image, current_room.background_position)

    # Load time to screen
        Timer = font.render(output_string, True, constants.WHITE)
        screen.blit(Timer, [350, 30])

# Draw all sprites in lists on screen
        all_sprites_list.draw(screen)
        current_room.wall_list.draw(screen)
        current_room.enemy_sprites.draw(screen)
        if len(projectile_list)!=0
            projectile_list.draw(screen)

        frame_count += 1

        clock.tick(frame_rate)

        pygame.display.flip()

    pygame.quit()

if __name__ == "__main__":
    main()

A:

There was some confusion in the comments, because projectile_list actually isn't a list but a pygame.sprite.Group. If you want to remove all sprites from a group, you can call the empty method: projectile_list.empty(). 
Note that empty will remove the sprites only from this specific group. If you want to remove the same sprites from all groups, you can iterate over the sprites and call their kill method.

