【发布时间】:2021-03-10 03:37:42
【问题描述】:
我想把这个“RqaEzty”变成这个“R-Qq-Aaa-Eeee-Zzzzz-Tttttt-Yyyyyyy”。它基本上打印出一个字母的次数与它的索引一样多。 我创建了以下方法,但它有一个错误。 每次一个字母在输入中出现两次或更多时,我的输出都是错误的,因为我的代码采用与第一次出现的字母相同的索引和第二次出现的相同字母
例如“ZpglnRxqenU”应该是
“Z-Pp-Ggg-Lllll-Nnnnn-Rrrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnnnnnnnn-Uuuuuuuuuuu” 但我明白了:
“Z-Pp-Ggg-Lllll-Nnnnn-Rrrrrrr-Xxxxxxx-Qqqqqqqq-Eeeeeeeee-Nnnnn-Uuuuuuuuuuu” 因为我的代码对第一个“n”和第二个“n”采用相同的索引
def accum(s):
x = list(s)
s = ""
for y in x:
amount = 1 + (x.index(y))
word = y * amount
s += word.capitalize() + "-"
s = s.rstrip('-')
print(s)
我的想法是在“for 循环”中实现一个 if 函数来控制一个字母是否多次出现,如果是则输出第二个(或第三个或第四个...)字母的索引。
我的问题: 如何将重复的索引作为单个值输出?
【问题讨论】:
-
s不需要转换成列表,python 字符串是可迭代的。
标签: python list loops arraylist indexing