我有一个包含100多个元素的可迭代列表.我希望在每个第10个可迭代元素之后做一些事情.我不想使用计数器变量.我正在寻找一些不包括计数器变量的解决方案.
目前我喜欢这样:
count = 0
for i in range(0,len(mylist)):
if count == 10:
count = 0
#do something
print i
count += 1
Run Code Online (Sandbox Code Playgroud)
有什么办法可以省略反变量吗?
Jak*_*yer 33
for count, element in enumerate(mylist, 1): # Start counting from 1
if count % 10 == 0:
# do something
Run Code Online (Sandbox Code Playgroud)
使用枚举.它为此而建
只是为了显示另一个选项......希望我能正确理解你的问题...切片会给你准确的列表元素,而不必遍历每个元素或保留任何枚举或计数器.请参阅解释Python的切片表示法.
如果你想从第一个元素开始并从那一点获取每个第10个元素:
# 1st element, 11th element, 21st element, etc. (index 0, index 10, index 20, etc.)
for e in myList[::10]:
<do something>
Run Code Online (Sandbox Code Playgroud)
如果你想从第10个元素开始并从那一点获取每个第10个元素:
# 10th element, 20th element, 30th element, etc. (index 9, index 19, index 29, etc.)
for e in myList[9::10]:
<do something>
Run Code Online (Sandbox Code Playgroud)
第二个选项的示例(Python 2):
myList = range(1, 101) # list(range(1, 101)) for Python 3 if you need a list
for e in myList[9::10]:
print e # print(e) for Python 3
Run Code Online (Sandbox Code Playgroud)
打印:
10
20
30
...etc...
100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19112 次 |
| 最近记录: |