我必须编写一个代码,列出所有以'the'开头的单词(例如那里,然后是)。但是列表中没有任何重复项。有人可以帮忙吗?这是我到目前为止所做的。
def getbook():
bookname = input("What is the name of the text file?")
bookFile = open(bookname, 'r')
bookString = bookFile.read()
lowerBook = bookString.lower()
wordList = lowerBook.split()
return wordList
import string
def listAllThe(longString):
theList = []
for i in longString:
if i == 'the':
theList.append( i)
return theList
def final():
book = getbook()
getList = listAllThe(book)
print (getList)
final()
答案 0 :(得分:1)
你应该签出set
数据类型,它不允许重复,并且在其中搜索是O(1)(常数时间)。
另外,你应该检查string.startswith()
函数,如果字符串以作为参数传入的值开始,它将返回true。
然后在listAllThe
函数中,您可以使用函数theList
将set
初始化为set()
,然后将if条件检查初始化为 - {{1} }。
带有更改的代码看起来像 -
i.startswith('the')
答案 1 :(得分:1)
这是可以通过Python列表理解轻松完成的事情。结果列表可用于初始化set
,这将删除重复项:
set([x for x in bookFile.read().lower().split() if x.startswith('the')])