Python 列表和 for 循环。我如何与我打算处理后续项目而不是第一个项目的 for 循环通信?

标签 python list for-loop

我是 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/

相关文章:

python - "Segmentation Fault"被第三方包抛出。如何防止它显示在控制台上?

python - 使用 Beautifulsoup 解析 NELL 知识库页面

Python - 展平字典列表

python - 切片列表中的所有字符串?

python - 如何在 Python 中解压缩二进制十六进制格式的数据?

python - 通过 GAE 上的 webapp2 返回大型/流式响应?

android - 获取已安装的安卓应用程序列表

javascript - 如果没有选择复选框则跳出 for 循环

vba - VBA中的子级

command-line - Vista命令行上的递归文件复制和重命名