Would this work? list=table.pack(1,2,3,nil,4,5,nil,nil,6,7) local n=0 for i=1,list.n do if list[i]~=nil then n=n+1 list[n]=list[i] list[i]=nil end end list.n=n for k,v in ipairs(list) do print(k,v) end