Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将1D列表转换为三角形2D列表_Python_Python 3.x - Fatal编程技术网

Python 将1D列表转换为三角形2D列表

Python 将1D列表转换为三角形2D列表,python,python-3.x,Python,Python 3.x,我有一个列表,范围从1到55,第2步:[1,3,5,7,9,11,13,15,…,53]。 我想做的是用第一个列表中的数字填充另一个列表,它是2D和三角形的 def odd_triangle(n): a = [] b = [] for number in range(1, 55, 2): a.append(number) for i in range(n): b.append([]) for j in range(i

我有一个列表,范围从1到55,第2步:
[1,3,5,7,9,11,13,15,…,53]
。 我想做的是用第一个列表中的数字填充另一个列表,它是2D和三角形的

def odd_triangle(n):
    a = []
    b = []
    for number in range(1, 55, 2):
        a.append(number)
    for i in range(n):
        b.append([])
        for j in range(i+1):
            b[i].append(a[i])
    print(b)
在我调用该函数后,例如
奇数三角形(5)
(将创建5行),它给出的不是我想要的:
[[1]、[3,3]、[5,5,5]、[7,7,7]、[9,9,9,9]

我想要的是:
[[1]、[3,5]、[7,9,11]、[13,15,17,19]、[21,23,25,27,29]
这将起作用:

a = list(range(1,55,2))
n = 5
it = iter(a)
b = list([next(it) for _ in range(i)] for i in range(1, n+1))
给出:

[[1], [3, 5], [7, 9, 11], [13, 15, 17, 19], [21, 23, 25, 27, 29]]

这里,
next(it)
每次调用它时,只需从
a
上的迭代器中获取下一个值。

每次追加
a[i]
。添加[j+i]或其他内容。如果每次都要附加一个不同的元素,则每次都需要附加一个不同的元素。投票关闭是因为键入错误。