首页 > 解决方案 > Python 列表和 for 循环。如何与我打算处理后续项目而不是仅第一个项目的 for 循环通信?

问题描述

我是 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. 我应该如何解决这个问题?感谢您花时间回答这个问题。

标签: pythonlistfor-loop

解决方案


您可以使用列表理解以更简单的方式完成此操作,并且enumerate

>>> s = 'abcd'
>>> '-'.join([c.upper() + c.lower()*i for i,c in enumerate(s)])
'A-Bb-Ccc-Dddd'

推荐阅读