I have a function that loads a sprite sheet, finds a block of sprites and then puts each individual sprite in a list. Before he adds a sprite to the list, he will blister it on the screen. After it is loaded with sprites, it will go through the list, beating each sprite as it arrives. Two sets of blits should be the same, but instead, the first sprite drops out of the list, and the last sprite is duplicated. Two sets of highlights are as follows:

Each sprite is close in the order in which it was added to the list, going from left to right, from top to bottom, so the first sprite is top left and the last is right.
Here is the function that loads sprites:
def assembleSprites(name, screen):
"""Given a character name, this function will return a list of all that
character sprites. This is used to populate the global variable spriteSets"""
spriteSize = (35, 35)
spritesheet = pygame.image.load("./images/patchconsprites.png")
sprites = []
start = charCoords[name]
char = list(start)
image = pygame.Surface((35,35))
for y in range(5):
char[0] = start[0]
for x in range(9):
rect = (char[0], char[1], char[0]+spriteSize[0], char[1]+spriteSize[1])
image.blit(spritesheet, (0,0), rect)
image = image.convert()
colorkey = image.get_at((0,0))
image.set_colorkey(colorkey, RLEACCEL)
screen.blit(image, (x*40, y*40))
pygame.display.update()
sprites.append(image)
char[0] += spriteSize[0]+2
char[1] += spriteSize[1]+2
count = 0
for y in range(6,11):
for x in range(9):
screen.blit(sprites[count], (x*40,y*40))
count += 1
pygame.display.update()
return sprites
- , ?