LINUX.ORG.RU

История изменений

Исправление t184256, (текущая версия) :

На comprehension’ах без import’ов и без загрузки всего файла в память, прям даже как будто настоящие let и chaining:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

words = (word.rstrip() for word in open('russian.txt')
         if (vowels := [v for v in word.lower() if v in VOWELS])
         if sum((x in vowels) ^ (y in vowels) for x, y in PAIRS) == len(PAIRS)
         if all(VOWELS.index(x) < VOWELS.index(y)
                for x, y in zip(vowels, vowels[1:])))

for word in words:
    print(word)

Исправление t184256, :

На comprehension’ах без import’ов и без загрузки всего файла в память, прям даже как будто настоящие let и chaining:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

is_sorted_uniq = lambda l, key: all(key(x) < key(y) for x, y in zip(l, l[1:]))

words = (word.rstrip() for word in open('russian.txt')
         if (vowels := [v for v in word.lower() if v in VOWELS])
         if sum((x in vowels) ^ (y in vowels) for x, y in PAIRS) == len(PAIRS)
         if is_sorted_uniq(vowels, key=VOWELS.index))

for word in words:
    print(word)

Исправление t184256, :

На comprehension’ах без import’ов, прям даже как будто настоящие let и chaining:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

is_sorted_uniq = lambda l, key: all(key(x) < key(y) for x, y in zip(l, l[1:]))

words = (word.rstrip() for word in open('russian.txt').readlines()
         if (vowels := [v for v in word.lower() if v in VOWELS])
         if sum((x in vowels) ^ (y in vowels) for x, y in PAIRS) == len(PAIRS)
         if is_sorted_uniq(vowels, key=VOWELS.index))

for word in words:
    print(word)

Исправление t184256, :

На comprehension’ах без import’ов, прям даже как будто настоящие let и chaining:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

is_sorted_uniq = lambda l, key: all(key(x) < key(y) for x, y in zip(l, l[1:]))

words = (w.rstrip() for w in open('russian.txt').readlines()
         if (vowels := [v for v in w.lower() if v in VOWELS])
         if sum((x in vowels) ^ (y in vowels) for x, y in PAIRS) == len(PAIRS)
         if is_sorted_uniq(vowels, key=VOWELS.index))

for word in words:
    print(word)

Исправление t184256, :

На comprehension’ах без import’ов, прям даже как будто настоящие let и chaining:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

is_sorted_uniq = lambda l, key: all(key(x) < key(y) for x, y in zip(l, l[1:]))

words = (w.rstrip() for w in open('russian.txt').readlines()
         if (vowels := [v for v in w.lower() if v in VOWELS])
         if sum(vowels.count(x) + vowels.count(y) == 1 for x, y in PAIRS) == 5
         if is_sorted_uniq(vowels, key=VOWELS.index))

for word in words:
    print(word)

Исправление t184256, :

На comprehension’ах без import’ов:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

is_sorted_uniq = lambda l, key: all(key(x) < key(y) for x, y in zip(l, l[1:]))

words = (w.rstrip() for w in open('russian.txt').readlines()
         if (vowels := [v for v in w.lower() if v in VOWELS])
         if sum(vowels.count(x) + vowels.count(y) == 1 for x, y in PAIRS) == 5
         if is_sorted_uniq(vowels, key=VOWELS.index))

for word in words:
    print(word)

Исходная версия t184256, :

На comprehension’ах без import’ов:

PAIRS = ('ая', 'оё', 'ую', 'ыи', 'эе')
VOWELS = 'аеёиоуыэюя'

get_vowels = lambda w: [v for v in w.lower() if v in VOWELS]
is_sorted_uniq = lambda l, key: all(key(x) < key(y) for x, y in zip(l, l[1:]))

words = (w.rstrip() for w, vowels
         in ((w, get_vowels(w)) for w in open('russian.txt').readlines())
         if sum(vowels.count(x) + vowels.count(y) == 1 for x, y in PAIRS) == 5
         and is_sorted_uniq(vowels, key=VOWELS.index))

for word in words:
    print(word)