这是我当前的代码:
我的问题是,我正在练习列表理解,但是对于为什么“ count + = 1”在这种格式下不起作用感到困惑:
[count += 1 for elem in li]
[count += 1 and print(elem) for elem in li]
但是,我能够像下面一样在正常的for循环中执行此操作。有人可以解释我如何通过列表理解来完成以下功能吗?
(上面带有列表理解格式的代码行不一定与累加器有关。)
def accum(s):
count = 0
li = []
for char in s:
count += 1
li.append(char.upper() + char.lower() * (count-1))
return "-".join(li)
答案 0 :(得分:1)
理解力以表达式作为其第一要素; count += 1
是声明。
相反,使用enumerate
,它将生成x
的生成器并返回生成(i, x)
的生成器,其中i
是索引:
'-'.join(char.upper() + char.lower() * i for i, char in enumerate(s))
答案 1 :(得分:0)
for count,char in enumerate(s):
li.append(char.upper() + char.lower() * (count-1))
将enumerate
用于此类事情
作为列表理解
[char.upper() + char.lower() * (count-1) for count,char in enumerate(s)]
答案 2 :(得分:0)