这个简单的程序从文本文件中读取单词列表,然后将一个子列表写入另一个文件,该列表具有该子列表的“单词总数”:

wordList = readFile.read().split(', ')
totalWords = 0

for word in wordList:
    if ('e' in word):
         writeFile.write(word + '\n')
         totalWords += 1

writeFile.write("Total words: " + str(totalWords))
readFile.close()
writeFile.close()


使用Python的三元条件:

for word in wordList:
    writeFile.write(word + '\n') if ('e' in word) else 'false'


我想知道是否有一种方法可以执行写入操作并在单个三元条件中递增totalWords。
我还想知道,是否有一种更合适的方法来处理else条件,而不是使用“ false”或“ None”,因为我们只是跳过了不符合条件的单词?
提前致谢。

最佳答案

您实际上无法使用单个三元语句(一个线性)执行写入操作并递增totalWords。您已经正确执行了代码,无需修改代码。

如果要增强代码,可以使用with复合语句,如下所示:

with open('read_filename', 'r') as readFile, open('write_filename', 'w') as writeFile:
    wordList = readFile.read().split(', ')
    totalWords = 0

    for word in wordList:
        if ('e' in word):
            writeFile.write(word + '\n')
            totalWords += 1

    writeFile.write("Total words: " + str(totalWords))

10-07 12:39