我是 python 的新手,我正在研究一个函数,我希望它传递一个像 abcd
这样的字符串,它输出像 A-Bb-Ccc-Dddd
。
我创建了以下内容。
`
def mumbler(s):
chars = list(s)
mumbled = []
result = []
for char in chars:
caps = char.upper()
num = chars.index(char)
low = char.lower()
mumbled.append( caps+ low*num)
for i in mumbled:
result.append(i+'-')
result = ''.join(result)
return result[:-1]
`
它适用于大多数情况。但是,当我传递一个像 Abcda
这样的字符串时。它无法返回预期的输出,在本例中为 A-Bb-Ccc-Dddd-Aaaaa
。
我应该如何解决这个问题?
感谢您花时间回答这个问题。
最佳答案
您可以使用列表理解和 enumerate
>>> s = 'abcd'
>>> '-'.join([c.upper() + c.lower()*i for i,c in enumerate(s)])
'A-Bb-Ccc-Dddd'
关于Python 列表和 for 循环。我如何与我打算处理后续项目而不是第一个项目的 for 循环通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52083460/