···1414 next_row = []
15151616 for i in range(len(row)):
1717- a, b, c = (is_safe(row, x) for x in range(i-1, i+2))
1818- next_row.append(predict_safe(a, b, c))
1717+ a, c = is_safe(row, i - 1), is_safe(row, i + 1)
1818+ next_row.append(not (a ^ c))
19192020 return tuple(next_row)
2121-2222-2323-def predict_safe(a, b, c):
2424- if a and b and not c:
2525- return False
2626- elif not a and b and c:
2727- return False
2828- elif a and not b and not c:
2929- return False
3030- elif not a and not b and c:
3131- return False
3232-3333- return True
342135223623if __name__ == '__main__':