Search code examples
pythonpython-3.xstartswithends-with

Python: How to delete numbers in list


Python learner here. So I have a wordlist.txt file, one word on each line. I want to filter out specific words starting and ending with specific letters. But in my wordlist.txt, words are listed with their occurrence numbers.

For example:

food 312
freak 36
cucumber 1

Here is my code

wordList = open("full.txt","r", encoding="utf-8")
word = wordList.read().splitlines()

for i in word:
    if i.startswith("h") and i.endswith("e"):
        print(i)

But since each item in the list has numbers at the end I can't filter correct words. I could not figure out how to omit those numbers.


Solution

  • Try splitting the line using space as the delimiter and use the first value [0] which is the word in your case

    for i in word:
        if i.split(" ")[0].startswith("h") and i.split(" ")[0].endswith("e"):
            print(i.split(" ")[0])
    

    Or you can just peform the split once as

    for i in word:
        w = i.split(" ")[0]
        if w.startswith("h") and w.endswith("e"):
            print(w)
    

    EDIT: Based on the comment below, you may want to use no argument or None to split in case there happen to be two spaces or a tab as a field delimiter.

    w = i.split()[0]