Create a text index of files This program creates a text index of 3 different files in Python. While this works correctly, I am still a beginner in Python. I used a list of class objects. Can this code be further optimised?

class ListNode :
    def __init__(self,w,docslist) :

        self.word = w
        self.docslist = []
        self.docslist.append(docslist)

TextIndex = []

def Search(word,TextIndex) :

    for i in TextIndex :
        if i.word == word :
            return TextIndex.index(i)   
        else :
            continue

    return -1


def Create(docs) :
    for d in docs :
        words = []
        for line in d :
            line = line.split()
            for word in line :
                if word not in words :
                    words.append(word)

            for word in words :

                node = ListNode(word,d.name)

                j = Search(word,TextIndex)

                if j == -1 :
                    TextIndex.append(node)

                else :
                    TextIndex[j].docslist.append(d.name)

def Display() :
    TextIndex.sort(key=lambda x: x.word, reverse=False)
    for i in TextIndex :
        print (i.word,i.docslist)


def main() :

    try :
        with open(r"C:\Users\Anonymous\Documents\words1.txt") as a, open(r"C:\Users\Anonymous\Documents\words2.txt") as b,       open(r"C:\Users\Anonymous\Documents\words3.txt") as c :
        docs = [a,b,c]  
        Create(docs)

        Display()


    except IOError as e :
        print ('Operation Failed: %e' %e.strerror)

if __name__ == '__main__':
    main()
Coding style

Please follow PEP8, the Python coding style guide.
You have really a LOT of coding style violations,
and it's really hard to read your code this way.

In addition, the variable names are extremely poor,
especially a file handle named d,
and a node named i,
but an index named j is also not great.

Choice of data structure

The index is backed by TextIndex, a list,
which is inefficient.
The time complexity of a lookup (the Search function) is \$O(n)\$.
You can do much better by using a dictionary,
mapping words to nodes.
In fact, the Search function would completely disappear,
as you could replace it with a simple condition like word in TextIndex to check if something is in the index or not.

Working with files

Since all 3 input files are processed exactly the same way,
there's no need to process them all in the same with block.
If an error occurs during the processing of one,
the program would exit, so this is fragile, 
and at the same time a very rigid setup.
It would be better to have a helper function in charge of opening and processing a file,
and call this function for each file sequentially.

It's also not great to pass a file handle to another function.
It's a lot clearer to work with a file handle in the with block,
read data from it, and then it's ok to pass the read data to another function for further processing.