这是python自然语言处理上的一道题
P140/41 ●将下列嵌套循环重写为嵌套列表推导。
words=['attribution','confabulation','elocution','sequoia','tenacious','unidirectional']
vesquences=set()
for word in words:
vowels=[]
for char in word:
if char in 'aeiou':
vowels.append(char)
vesquences.add(''.join(vowels))
sorted(vesquences)
['aiuio', 'eaiou', 'eouio', 'euoia', 'oauaio', 'uiieioa']
应该目的是将列表中的元音字母抽出重新组成一个集合显示出来,但是我和伙伴做了好久都没有做出来,希望各位大神帮忙看一下,谢谢
不知道是否符合你的意思:
def get_new_word():
words = ['attribution', 'confabulation', 'elocution', 'sequoia', 'tenacious', 'unidirectional']
retList = []
for word in words:
newWord = ''
aCount = word.count('a')
eCount = word.count('e')
iCount = word.count('i')
oCount = word.count('o')
uCount = word.count('u')
if aCount > 0:
newWord += 'a' * aCount
if eCount > 0:
newWord += 'e' * eCount
if iCount > 0:
newWord += 'i' * iCount
if oCount > 0:
newWord += 'o' * oCount
if uCount > 0:
newWord += 'u' * uCount
retList.append(newWord)
return retList
words=['attribution','confabulation','elocution','sequoia','tenacious','unidirectional']
vesquences = [ ''.join([ char for char in word if char in 'aeiou']) for word in words ]
print(vesquences)
words = ['attribution','confabulation','elocution','sequoia','tenacious','unidirectional']
vesquences = [ ''.join([ char for char in word if char in 'aeiou']) for word in words ]
a = sorted(vesquences)
print a