我使用枚举函数编写了一些Python代码.
A = [2,3,5,7]
for i, x in enumerate(A):
# calculate product with each element to the right
for j, y in enumerate(A, start=i+1):
print(x*y)
Run Code Online (Sandbox Code Playgroud)
我预计它会计算出6种产品:2*3,2*5,2*7,3*5,3*7,5*7
相反,它计算了所有可能的16种产品.这是怎么回事?
所述start的参数enumerate仅影响产生元组(即,第一值i和j)时,它不影响枚举开始的索引.正如手册所说,enumerate相当于:
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1
Run Code Online (Sandbox Code Playgroud)
你想要的是这个:
for i, x in enumerate(A):
for y in A[i + 1:]:
print(x * y)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |