如何使用Python只显示带元音的单词中的字母

时间:2015-09-18 02:24:53

标签: python list

VOWELS = "aeiou"

word = "matt"
word = "james is funny"
cnt = 0

for v1 in VOWELS:
    print ("vowel", cnt)
    print("letter:", v1)
    cnt = cnt + 1
    for v1 in word:
        print ("location in string", cnt)
        print("letter:", v1)
        cnt = cnt + 1

我一直试图弄清楚这几个小时,这让我发疯了。我只需要python来打印单词中的元音字母。

5 个答案:

答案 0 :(得分:0)

import re

word = "james is funny"
print re.sub('[^aeiou]','',word)

OUTPUT:

'aeiu'

答案 1 :(得分:0)

仅打印单词中的元音字母:

print ''.join(c for c in text if c in 'aeiou')

仅打印包含元音的单词:

words = text.split()
def containsVowel(word):
    any(c in word for c in 'aeiou')
words_with_vowels = [w for w in words if containsVowels(w)]
print words_with_vowels

答案 2 :(得分:0)

直截了当的方式:

  • 为文中的每个字母
    • 如果是元音,请将其打印
    • 否则打印空格

直接转换为Python(以及在打印时将所有内容保持在同一行上的调整):

VOWELS = "aeiou"

word = "james is funny"

for letter in word:
    if letter in VOWELS:
        print(letter, end='')
    else:
        print(' ', end='')

或稍微有点花哨的方式:

  • 用空格替换所有非元音。打印结果

使用正则表达式模式语言:

import re

word = "james is funny"

new_word = re.sub('[^aeiou]', ' ', 'james is funny')

print new_word

答案 3 :(得分:0)

vowels = "aeiou"
word = "james is funny and really fun!"
for v1 in range(len(vowels)):
    for v2 in range (len(word)):
        if vowels[v1] == word[v2]:
            print("location in string", v2)
            print("letter:", vowels[v1])

Python有一个内置函数,允许你使用字符串作为列表,通过使用它,你可以循环遍历字符串的每个字母并与元音进行比较。

E.g。

vowels[0] = a
word[10] = u

答案 4 :(得分:0)

我们需要从单词中找出元音。这里将word传递给re.findall(),它会找到单词中的所有元音并返回为字符列表。我们正在加入列表以显示为单词。

import re
word = "james is funny"
k = re.findall(r'[aeiou]', word)
print ''.join(k)

Out: 'aeiu'