python - 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
. 我应该如何解决这个问题?感谢您花时间回答这个问题。
解决方案
您可以使用列表理解以更简单的方式完成此操作,并且enumerate
>>> s = 'abcd'
>>> '-'.join([c.upper() + c.lower()*i for i,c in enumerate(s)])
'A-Bb-Ccc-Dddd'
推荐阅读
- r - 从需要使用 R 登录的站点中抓取信息(可能使用 API)
- oracle - Need output in below format in oracle. I have tried with lag function it worked if we have only 2 rows in table
- haskell - Haskell 和理解列表
- r - 根据两个数据集中的匹配条件创建变量
- python - 从 Github 安装包不起作用(可能是 .egg 文件有问题)
- java - 在下一个活动中创建列表之前,在加载屏幕中显示一个计数器(计算列表项)
- chisel - 值不是 chisel3.Bundle 的成员
- java - 重新创建 youtube 可拖动布局
- visual-studio-code - vscode 扩展图标路径
- python - 使用 apply 函数进行字符串操作