from collections import namedtuple NFA = namedtuple('NFA', ['start', 'accept', 'transitions']) def copy_nfa(nfa): transitions_copy = {} for from_state in nfa.transitions: transitions_copy[from_state] = nfa.transitions[from_state].copy() return NFA(nfa.start, nfa.accept, transitions_copy)