<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def decipher(self,string,keep_punct=False):
 """Decipher string using Railfence cipher according to initialised key. Example:: plaintext = Railfence(3).decipher(ciphertext) :param string: The string to decipher. :param keep_punct: if true, punctuation and spacing are retained. If false, it is all removed. Default is False. :returns: The deciphered string. """
        
        if not keep_punct: string = self.remove_punctuation(string)    
        ind = range(len(string))
        pos = self.buildfence(ind, self.key)
        return ''.join(string[pos.index(i)] for i in ind)