我是否可以将字符串转换为小写字母,而不在下面代码中的“单词”上运行循环
class TextFileHandeling:
def __init__(self,path,mode):
self.path=path
self.mode=mode
def reading_file(self):
file_read= open(self.path,self.mode)
lines=file_read.read()
words=lines.split() #split strings into words
return words
file_read.close()
def writing_file(self,words):
unique=[]
file_write= open(self.path,self.mode)
small_letters=[]
**for i in words:
small_letters.append(i.lower())**
for j in small_letters:
if j not in unique:
unique.append(j)
file_write.write(f"{str(j)} {small_letters.count(j)}\n")
return file_write
file_write.close()
read_file=TextFileHandeling('D:\\python_practise\\read.txt','r')
write_file=TextFileHandeling('D:\\python_practise\\reader.txt','w')
words= read_file.reading_file()
write_file.writing_file(words)
您已经在
small_letter
列表上循环,所以为什么不在循环中只将单词转换为小写字母呢此外,我不知道在列表中没有循环的情况下,单词的大小写是否较低
这应该能很好地发挥作用:
首先,如果在return语句之后有return子句,则不会关闭文件,因此
必须成为:
我还建议您更改get_words中函数的名称,因为函数的真正功能是给您列出的单词,而不是读取文件
要将所有单词放低,请使用功能图:
此外,由于它看起来像是作为集合使用唯一性,因此,如果已经编写了一些东西,则可以使用它,考虑更改集合中唯一的数据结构。在这里您可以找到集合的文档:
https://docs.python.org/2/library/sets.html
相关问题 更多 >
编程相关推荐