python中的简单列表模拟
没有修改任何东西除了???输出编号后,我需要打印出从1到编号中数字总和的数字,即:python中的简单列表模拟,python,Python,没有修改任何东西除了???输出编号后,我需要打印出从1到编号中数字总和的数字,即: 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
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\u no=idx*n+indx+1
这导致:
1
2
3
4
5
6
7
8
9
10
哪个
out\u no
会给我正确的结果?取决于允许您更改的内容,简单的方法当然是:
1
2
3
4
5
6
7
8
1
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
好的,正如Inauld所指出的,如果你可以放弃一切,但没有更简单的解决方案,例如:
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
我这样做是因为你把事情复杂化了是的,你还需要准确地定义你想要的是什么。似乎你想打印出从1到数字之和的数字。不过这只是基于示例的猜测。@CrazyCasta是的,你清楚地知道我的问题。
列表与这些有什么关系?这真的让问题变得过于复杂了solution@IanAuld这是如何使解决方案过于复杂的?我接受了他给我们的东西,做了最小的改变。请更具建设性地说,“这确实使解决方案过于复杂”,而不说得更具体一些是没有多大帮助的。@CrazyCasta我正在使用你的第二个解决方案,在你自己描述问题后加上1,OP需要找到列表的总和nos
,N
,并打印范围(1,N+1)内的数字
。因此,与其使用OP制作的任何非常不音速且过于复杂的东西,你应该让他指向:对于范围内的i(1,sum(nos)+1):print(i)
@i是的,这件事我知道,但我需要使用给定的东西在我的程序中指出的地方获得所需的数字。。。
nos = [4, 4, 1, 1]
for i in range(sum(nos)): print i+1