lists = ['A', 'B', 'C', 'D']
nos = [4, 4, 1, 1]
for idx, ln in enumerate(zip(lists,nos)):
l, n = ln[0], ln[1]
in_nos = range(1, n+1)
for indx, in_no in enumerate(in_nos):
out_no = ??? ### **I need an expression to get out_no here**
print out_no
除了???之外没有修改任何东西在out_no之后,我需要将数字从1打印到nos
中的数字总和,即:
1
2
3
4
5
6
7
8
9
10
我试过:
out_no = idx*n + indx + 1
导致:
1
2
3
4
5
6
7
8
1
1
哪个out_no
会给我正确的结果?
答案 0 :(得分:1)
取决于您允许更改的内容,当然简单的方法是:
lists = ['A', 'B', 'C', 'D']
nos = [4, 4, 1, 1]
a = 0
for idx, ln in enumerate(zip(lists,nos)):
l, n = ln[0], ln[1]
in_nos = range(1, n+1)
for indx, in_no in enumerate(in_nos):
out_no = a+indx+1
print out_no ##The result should be HERE
a += n
假设你只能改变out_no,你可以这样做:
lists = ['A', 'B', 'C', 'D']
nos = [4, 4, 1, 1]
for idx, ln in enumerate(zip(lists,nos)):
l, n = ln[0], ln[1]
in_nos = range(1, n+1)
for indx, in_no in enumerate(in_nos):
out_no = sum(nos[0:+idx])+indx+1
print out_no ##The result should be HERE
好的,正如IanAuld指出的那样,如果你可以废除除了nos之外的所有东西,那么就有更简单的解决方案,例如:
nos = [4, 4, 1, 1]
for i in range(sum(nos)): print i+1