def assign_numbers_to_cards(cards): color_to_number = {} # Dictionary to store assigned numbers for each color assigned_numbers = [] # List to store assigned numbers in the order of cards for card in cards: color = card[0] # Color of the card if color not in color_to_number: color_to_number[color] = len(color_to_number) + 1 # Assign the next available number for the color assigned_numbers.append(color_to_number[color]) # Append the assigned number to the list color_order = sorted(color_to_number, key=color_to_number.get) # Sort the colors based on assigned numbers return assigned_numbers, color_order # Example usage cards = ['blue', 'red', 'green', 'blue', 'green', 'red', 'yellow'] assigned_numbers, color_order = assign_numbers_to_cards(cards) print("Assigned Numbers:", assigned_numbers) print("Color Order:", color_order)