Выполнение нескольких действий с Python троичным условным оператором - PullRequest
1 голос
/ 29 февраля 2020

Эта простая программа считывает список слов из текстового файла и записывает подсписок в другой файл с подсчетом «Всего слов» для подсписка:

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 в единственном троичном условном выражении. Мне также интересно, а не использовать «false» или «None», есть ли более подходящий способ обработки условия else, поскольку мы просто пропускаем слово, которое не соответствует условию? Заранее спасибо.

1 Ответ

0 голосов
/ 29 февраля 2020

Вы не можете действительно выполнить операцию записи и увеличить 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))
...