我如何使用一行 map() 将字符串中的所有元音变成大写?

How can I use a one-line with map() to turn all vowels in a string upper case?

我想用map()把一个字符串中的所有元音字母都变成大写字母;这是我的代码:

def swap_vowel_case(st):
    listt = "AEIOUaeiou"

    return "".join(list(map(lambda x: x.upper(), vowel) for vowel in listt))

这行不通。

凭直觉,我想写:

    return "".join(list(map(lambda x: x.upper() for x in listt,st)))

但这也不管用。任何想法如何修改以上任何一个?谢谢

追加时添加条件

def swap_vowel_case(text):
    vowels = "AEIOUaeiou"
    return "".join(map(lambda char: char.upper() if char in vowels else char, text))


a = swap_vowel_case("But this doesn't work either. Any ideas how to modify either of the above? Thanks")
print(a)

输出

BUt thIs dOEsn't wOrk EIthEr. Any IdEAs hOw tO mOdIfy EIthEr Of thE AbOvE? ThAnks