Я понял все сразу после того, как задал вопрос, проблема заключалась в том, что значение, переданное ключевой функции, было одним из подсписков, поэтому мне нужно было только пройтись по подсписку и изменить None на 0, как вы это сделали с normalized, вот что я получил:
# this sort a list with a sublist that has a None value in it - the None is changed to a 0 -
sort_none = lambda z: sorted( z, key= lambda x: [ 0 if y is None else y for y in x ] )
board = Board( [ 1,2,3 ,4,None,5 ,6,7,8 ] )
self.assertEqual( sort_none(board.valid_moves()),
sort_none([
[ 1,None,3 ,4,2,5 ,6,7,8],
[ 1,2,3 ,None,4,5 ,6,7,8],
[ 1,2,3 ,4,5,None ,6,7,8],
[ 1,2,3, 4,7,5 ,6,None,8]
])
)
Спасибо за ваше время