将大写字母移动到字符串前面并将小写字母大写的函数?
python 286
原文标题 :function that moves capitals to the front of a string and capitalizes lowercase letters?
我正在尝试制作一个将字符串作为输入的函数。然后它将字符串中的大写字母移到前面,并将小写字母大写。相对于它们在原始字符串中的位置,小写字母和空格应保持在相同的位置。
例如:
unravel_message(' neHAw moPPnthY')
应该返回'HAPPY NEW MONTH'
作为输出。
和unravel_message('ALL CAPITALS')
应该返回'ALLCAPITALS '
作为输出。(空格保持在同一位置;只有大写字母向后移动)
我的尝试:
def unravel_message(word):
return ''.join([i for i in word if i == i.upper()]) + ''.join([i.upper() for i in word if i == i.lower()])
对于我的函数,unravel_message(' neHAw moPPnthY')
输出' HA PPY NEW MONTH'
。这不太正确。我认为这可能是因为''.join()
。如果可能的话,我想修改此函数以使用单个列表理解而不使用导入。如果输入都是小写的,我还想包含一个解决错误的断言语句,但我不确定如何执行此操作。