Access words by index in python
I don’t know if it’s possible but i’m trying to access words (not individual characters) from a split string by indexes and store it in a dictionary. If this can’t work, pls is there any other suggestion as to how to go about getting the same result. This is my code so far:
def main(): if len(argv) != 2: print("usage: python import.py (csv file)") exit(0) db = SQL("sqlite:///students.db") file = open(argv[2], 'r') csv_file = DictReader(file) for row in csv_file: names = row['name'] for i in names: word = i.split() # what the csv looks like name,house,birth Adelaide Murton,Slytherin,1982 Adrian Pucey,Slytherin,1977 Anthony Goldstein,Ravenclaw,1980 # what i want it to look like first name,middle name,last name,house,birth Adelaide,None,Murton,Slytherin,1982 Adrian,None,Pucey,Slytherin,1977 Anthony,None,Goldstein,Ravenclaw,1980
If there is a comma between the words then you can do words = i.split(',')
or whatever the delimiter is passed in as an argument to split()
sentence = 'This is an example' # string: 'This is an example' words = sentence.split() # list of strings: ['This', 'is', 'an', 'example']
At this point you can get a specific word by calling its index, or loop through them like for word in words:
.
I’m not sure about the SQL portion of your code but it looks like you’re already looping through the words when you do for i in names:
.
You can try with this code
def create_word_index(filenames, rare_word_flag=False): word_index, word_count, single_words = {}, 0, [] # original : word_count = 0 ## Handle word index and word count for idx, filename in enumerate(filenames): with open(filename) as f: for sentence in f.readlines(): words = sentence.strip().split() for word in words: # word = process(word) # Do more preprocessing stuff here if you need if rare_word_flag and (word in single_words): word_index[word] = 1 continue if word in word_index: continue word_index[word] = word_count word_count += 1 return word_index, word_count filenames = ["haha.txt"] word_idx, word_count = create_word_index(filenames, False) print(word_idx) print(word_count) # haha.txt file: name=huhu, check=ok name=haha, check=not good