Я хочу создать двоичные значения для слов на основе их содержания гласных и согласных, где гласные получают значение «0», а согласные получают значение «1».Преобразование строки в двоичное представление в python
Например, «ха-ха» будет представлен как 1010, хахаха, как 101010.
common_words = ['haha', 'hahaha', 'aardvark', etc...]
dictify = {}
binary_value = []
#doesn't work
for word in common_words:
for x in word:
if x=='a' or x=='e' or x=='i' or x=='o' or x=='u':
binary_value.append(0)
dictify[word]=binary_value
else:
binary_value.append(1)
dictify[word]=binary_value
-с это я получаю слишком много двоичных цифр в результирующем словаре:
>>>dictify
{'aardvark': [0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1,...}
желаемому выход:
>>>dictify
{'haha': 1010,'hahaha': 101010, 'aardvark': 00111011}
Я думаю о решении, которое не включает цикл в цикле ...
Откуда берутся «каждый» или «номер_значения»? – user2357112
Нет решения, которое не использует две петли. – placeybordeaux
'dictify = {w:" ". Join ('0', если c в 'aeiouAEIOU' else '1' для c в w) для w в common_words}' – mshsayem