def get_diagonal_and_non_diagonal(L):
'''(list of list of int) -> tuple of (list of int, list of int)
Return a tuple where the first item is a list of the values on the
diagonal of square nested list L and the second item is a list of the rest
of the values in L.
>>> get_diagonal_and_non_diagonal([[1, 3, 5], [2, 4, 5], [4, 0, 8]])
([1, 4, 8], [3, 5, 2, 5, 4, 0])
'''
diagonal = []
non_diagonal = []
for row in range(len(L)):
for col in range(len(L)):
if row == col:
diagonal.append(L[row][col])
elif row != col:
non_diagonal.append(L[row][col])
return (diagonal, non_diagonal)
print(get_diagonal_and_non_diagonal([[1, 3, 5], [2, 4, 5], [4, 0, 8]]))
ZGVmIGdldF9kaWFnb25hbF9hbmRfbm9uX2RpYWdvbmFsKEwpOgogICAgJycnKGxpc3Qgb2YgbGlzdCBvZiBpbnQpIC0+IHR1cGxlIG9mIChsaXN0IG9mIGludCwgbGlzdCBvZiBpbnQpCgogICAgUmV0dXJuIGEgdHVwbGUgd2hlcmUgdGhlIGZpcnN0IGl0ZW0gaXMgYSBsaXN0IG9mIHRoZSB2YWx1ZXMgb24gdGhlCiAgICBkaWFnb25hbCBvZiBzcXVhcmUgbmVzdGVkIGxpc3QgTCBhbmQgdGhlIHNlY29uZCBpdGVtIGlzIGEgbGlzdCBvZiB0aGUgcmVzdAogICAgb2YgdGhlIHZhbHVlcyBpbiBMLgoKICAgID4+PiBnZXRfZGlhZ29uYWxfYW5kX25vbl9kaWFnb25hbChbWzEsICAzLCAgNV0sIFsyLCAgNCwgIDVdLCBbNCwgIDAsICA4XV0pCiAgICAoWzEsIDQsIDhdLCBbMywgNSwgMiwgNSwgNCwgMF0pCiAgICAnJycKCiAgICBkaWFnb25hbCA9IFtdCiAgICBub25fZGlhZ29uYWwgPSBbXQogICAgZm9yIHJvdyBpbiByYW5nZShsZW4oTCkpOgogICAgICAgIGZvciBjb2wgaW4gcmFuZ2UobGVuKEwpKToKCiAgICAgICAgICAgIGlmIHJvdyA9PSBjb2w6CiAgICAgICAgICAgICAgICBkaWFnb25hbC5hcHBlbmQoTFtyb3ddW2NvbF0pCiAgICAgICAgICAgIGVsaWYgcm93ICE9IGNvbDoKICAgICAgICAgICAgICAgIG5vbl9kaWFnb25hbC5hcHBlbmQoTFtyb3ddW2NvbF0pCgogICAgcmV0dXJuIChkaWFnb25hbCwgbm9uX2RpYWdvbmFsKQoKCnByaW50KGdldF9kaWFnb25hbF9hbmRfbm9uX2RpYWdvbmFsKFtbMSwgIDMsICA1XSwgWzIsICA0LCAgNV0sIFs0LCAgMCwgIDhdXSkpIA==