我的代码
yValues = [3, 6, 12]
retVal = []
for num in range(2):
retVal.append((num),(Y for Y in range( math.ceil(yValues[num]-yVaules[num-1]) )) )
我希望返回的是列表
retVal[(0, 3), (0, 4), (0, 5), (0, 6), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10), (1, 11), (1, 12)]
我一段时间没与建筑师合作过,因为我现在只是
retVal[(0, constructorFunction at ...), (1, constructorFunction at ...)]
答案 0 :(得分:1)
使用extend
而不是append
来扩展包含发生器中所有元素的列表,而不是附加生成器本身。 (还有一些小问题。)
yValues = [3, 6, 12]
retVal = []
for num in range(1, len(yValues)):
retVal.extend((num,Y) for Y in range(math.ceil(yValues[num]-yValues[num-1])))
print(retVal)
您的range
从0
转到2
(不包括),因此您将0
与-1
(最后一个)元素进行了比较。相反,您可能希望从1
循环到len(yValues)
(再次,排他)并进行比较。
编辑:如果您希望内部循环包含下一个索引的值,请在range
的上限中添加一个(请记住:上限是独占)。
range(math.ceil(yValues[num]-yValues[num-1]) + 1)