#!/usr/bin/env python3 import numpy as np import re piles = [] a = open("05/i").read().split("\n\n") b = list(reversed(a[0].split("\n"))) for l in b: temp = [] for i in range(0,len(l),4): temp.append(l[i+1].strip()) piles.append(temp) piles=[[i for i in x if i] for x in np.transpose(piles)] piles=[piles,piles] for p in piles: for l in a[1].strip().split("\n"): c=list(map(int,re.search("move (\d+) from (\d+) to (\d+)",l).groups())) p[c[2]-1].extend(p[c[1]-1][-c[0]:]) del p[c[1]-1][-c[0]:] print([i.pop() for i in p])