如何在Python中向列表理解添加迭代计数?

如何在Python中向列表理解添加迭代计数?,python,python-3.x,list-comprehension,Python,Python 3.x,List Comprehension,这是我目前的代码: 我的问题是,我正在练习列表理解,但我不明白为什么“count+=1”在这种格式下不起作用: [count += 1 for elem in li] [count += 1 and print(elem) for elem in li] 然而,我能够在正常的for循环中完成它,正如我在下面所做的那样。有人能解释一下我如何通过列表理解来完成下面的功能吗 (列表理解格式的上述代码行不一定与accum相关。) 对这类事情使用枚举 作为一个列表理解 [char.upper() +

这是我目前的代码:

我的问题是,我正在练习列表理解,但我不明白为什么“count+=1”在这种格式下不起作用:

[count += 1 for elem in li]
[count += 1 and print(elem) for elem in li]
然而,我能够在正常的for循环中完成它,正如我在下面所做的那样。有人能解释一下我如何通过列表理解来完成下面的功能吗

(列表理解格式的上述代码行不一定与accum相关。)

对这类事情使用
枚举

作为一个列表理解

  [char.upper() + char.lower() * (count-1) for count,char in enumerate(s)]
对这类事情使用
枚举

作为一个列表理解

  [char.upper() + char.lower() * (count-1) for count,char in enumerate(s)]
理解以表达为第一要素
count+=1
是一条语句

相反,使用
enumerate
,它获取生成
x的生成器,并返回生成
(i,x)
的生成器,其中
i
是索引:

'-'.join(char.upper() + char.lower() * i for i, char in enumerate(s))
理解以表达为第一要素
count+=1
是一条语句

相反,使用
enumerate
,它获取生成
x的生成器,并返回生成
(i,x)
的生成器,其中
i
是索引:

'-'.join(char.upper() + char.lower() * i for i, char in enumerate(s))

如果要在python列表理解中维护count,请使用

检查这个

然后试试这个代码


“-”.join((elem.upper()+elem.lower()*i)表示ii,枚举中的elem(li))

如果要在python列表理解中保持计数,请使用

检查这个

然后试试这个代码

“-”.join((elem.upper()+elem.lower()*i)表示ii,elem表示枚举(li))