переставить символы так, чтобы все согласные появлялись перед гласными

1

напишите функцию python так, чтобы

слова в нечетном положении: отменить его

слова в четном положении: перегруппируйте символы так, чтобы все согласные отображались перед гласными, и их порядок не должен меняться

вход: солнце растет на восточном выходе: eht snu sesir ni eht stea

Я изменил строку, но не смог выполнить перегруппировку символов. Можем ли мы использовать функцию append и join или нужно поменять местами. По сути, поворот строки выполняется так, как мы можем добиться этого.

def encrypt_sentence(sentence):
    vowel_set = set("aeiouAEIOU")
    final_list=[]
    word=sentence.split()
    for i in range(0,len(word)):
        if((i%2)==0):
            final_list.append(word[i][::-1])
        else:
           final_list.append("".join(c for c in word if c not in vowel_set))
 print(final_list)                   
encrypt_sentence("the sun rises in the east")   
  • 0
    прочитайте stackoverflow.com/q/949098/5986907
  • 0
    вашей функции было бы лучше return final_list присвоить ее переменной и затем напечатать оттуда, не рекомендуется print вашу функцию и не return
Показать ещё 1 комментарий
Теги:
string

2 ответа

1
Лучший ответ

Я буду перебирать буквы, отслеживая гласные и согласные, а затем использовать соединение в конце.

def encrypt_sentence(sentence):
    vowel_set = set("aeiouAEIOU")
    final_list=[]
    word=sentence.split()
    for i in range(0,len(word)):
        if((i%2)==0):
            final_list.append(word[i][::-1])
        else:  # do rearrangement
            vowels = list()
            consonants = list()
            for letter in word[i]:
                if letter in vowel_set:
                    vowels.append(letter)
                else:
                    consonants.append(letter)
            new_string = "".join(consonants) + "".join(vowels)
            final_list.append(new_string)
    return final_list
  • 1
    спасибо @ и это работает !! Я решаю эту проблему в течение 3 часов. Еще раз спасибо за то, что потратили ваше драгоценное время на мою проблему.
  • 0
    Нет проблем. Рад, что смог помочь.
1

попробуйте использовать два списка:

word='testing'
vov=[x if x in vowel_set else '' for x in word]
cons=[x if x not in vowel_set else '' for x in word]
('').join(cons+vov)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню