簡體   English   中英

如何在 function 內的循環內返回值?

[英]How do I return a value within a loop within a function?

我幾乎想通了,但有一件事。 基本上我想返回一個without a vowel的字符串(我猜這是一個常見的挑戰)。 這與我在 CodeWars 上完成的其他挑戰類似,因此仍未完成。 我在 function 中有一個 for 循環。 我調用 function 來返回值。

出於某種原因,我返回的是空的,或者更確切地說是“無”,但我通過打印得到了我想要的結果。 在同一行並縮進。

這是針對 Codewar 挑戰的,所以我需要返回值而不是打印、記錄(我知道)。 我問了一個朋友,研究了幾個小時,但沒有什么能幫助我。

def disemvowel(string):
    #aeiou
    vowel = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
    aList = list(string) #'' to [...]

    for x in aList:
      for y in vowel:
        if x == y: 
          #print(x)
          aList.remove(x)
    print(''.join(aList)) # "Ths wbst s fr lsrs LL!"
    return(''.join(aList)) # Nothing shows up here...


我期待"Ths wbst s fr lsrs LL!" 通過返回但我得到None

https://www.codewars.com/kata/52fba66badcd10859f00097e/train/python來源^

要從字符串中刪除元音,最快的方法是使用str.replace

def remove_vowels(msg):
    vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
    for vowel in vowels:
        msg = msg.replace(vowel, '')
    return msg

使用列表推導:

def remove_vowels(msg):
    return ''.join(c for c in msg if c.lower() not in {'a', 'e', 'i', 'o', 'u'})

例子:

>>> remove_vowels("Lorem ipsum dolor sit amet.")
'Lrm psm dlr st mt.'
>> remove_vowels("This is it")
'Ths s t'
>>> remove_vowels("This website is for losers LOL!")
'Ths wbst s fr lsrs LL!'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM