Список поиска в строковых символах - PullRequest
0 голосов
/ 12 октября 2018

Я должен найти, если слово не имеет гласной, а затем поместить их в другой список.Я не могу заставить это работать, и я не понимаю, почему.

    for i in range(len(Cadena)):
    if all Vocales[] not in Cadena:
        Lista.append(Cadena[i])

Ответы [ 4 ]

0 голосов
/ 12 октября 2018

Вы можете установить строку со всеми своими гласными, затем вы можете использовать списки, чтобы проверить ваши слова по этой строке

vow = 'aeiou' 
words = ['apple', 'banana', 'vsh', 'stmpd']

w_vowels = [i for i in words if any(k in vow for k in i)]
wo_vowels = [i for i in words if not any(k in vow for k in i)]

print(w_vowels) # => ['apple', 'banana']
print(wo_vowels) # => ['vsh', 'stmpd']

Расширенные циклы без any:

w_vowels = []
for i in words:
    for k in i:
        if k in vow:
            w_vowels.append(i)
            break
wo_vowels = []
for i in words:
    for k in i:
        if k in vow:
            break
    else:
        wo_vowels.append(i)
0 голосов
/ 12 октября 2018

Я не уверен на 100%, что означают ваши переменные, но ваша проблема проста.

Вот решение:

# array with words that you to sort into two groups
words = ["abc", "def", " ggg"]
vowels = ["a", "e", " i", "o", " u"] # possibly include "y"
numVowels = len(vowels)

withVowels = []   # words with vowels
withoutVowels = [] # words without vowels

# categorize words
for w in words:
    for i, v in enumerate(vowels):
        if v in w:
            withVowels.append(w)
        elif i == (numVowels -1):
            withoutVowels.append(w)

В конце цикла for, withVowels будет содержать ["abc", "def"], а без Vowels будет содержать [" ggg"]

0 голосов
/ 12 октября 2018
import re
def vocales(text):
    #with regular expression.
    print re.findall("[aeiouÁÉÍÓÚ]", text.lower(), re.IGNORECASE)
    #or verifying letter by letter
    print [e for e in text if e in "aeiouÁÉÍÓÚ"]
    #Shows the characters that are not vowels
    print [e for e in text if e not in "aeiouÁÉÍÓÚ"]
    #Returns false if it has vowels
    return not len([e for e in text if e in "aeiouÁÉÍÓÚ"])

vocales("Hola mundo. Hello world")

Выход:

['o', 'a', 'u', 'o', 'e', 'o', 'o']
['o', 'a', 'u', 'o', 'e', 'o', 'o']
['H', 'l', ' ', 'm', 'n', 'd', '.', ' ', 'H', 'l', 'l', ' ', 'w', 'r', 'l', 'd']
False
0 голосов
/ 12 октября 2018

Попробуйте это.

word = 'apple'
vowels = ['a','e','i','o','u','A','E','I','O','U']
for letter in word:
    if letter in vowels:
        #this word has a vowel, do something
    else:
        # this word doesn't have a vowel.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...