PythonNumpy:如何创建以下列表

PythonNumpy:如何创建以下列表,python,numpy,Python,Numpy,我正在尝试使用python和Numpy或Pandas创建以下列表: [0,1,2,3,4,5],[1,2,3,4,5],[2,3,4,5],[3,4,5],[4,5],[5] 有人想到了一个快速实现这一目标的方法吗 >>> [range(i,6) for i in range(6)] [[0, 1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [2, 3, 4, 5], [3, 4, 5], [4, 5], [5]] 至于做numpy或pandas,我不熟悉任

我正在尝试使用python和Numpy或Pandas创建以下列表:

[0,1,2,3,4,5],[1,2,3,4,5],[2,3,4,5],[3,4,5],[4,5],[5]

有人想到了一个快速实现这一目标的方法吗

>>> [range(i,6) for i in range(6)]
[[0, 1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [2, 3, 4, 5], [3, 4, 5], [4, 5], [5]]
至于做numpy或pandas,我不熟悉任何简单的方法,因为子列表的长度不同


至于numpy或pandas,我不熟悉任何简单的方法,因为子列表的长度不同。

您可以创建一个范围列表,然后简单地切片以获得每个子列表。其思想是为了提高效率,在循环理解中最小化工作

因此,将需要实施-

def reducing_ranges(n):
    r = range(n)
    return [r[i:] for i in r]
样本运行-

>>> reducing_ranges(6)
[[0, 1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [2, 3, 4, 5], [3, 4, 5], [4, 5], [5]]
运行时测试-

In [38]: %timeit [range(i,6) for i in range(6)] # @Akavall's soln
100000 loops, best of 3: 2.65 µs per loop

In [39]: %timeit reducing_ranges(6)
100000 loops, best of 3: 1.75 µs per loop

In [40]: %timeit [range(i,1000) for i in range(1000)] # @Akavall's soln
100 loops, best of 3: 9.96 ms per loop

In [41]: %timeit reducing_ranges(1000)
100 loops, best of 3: 2.96 ms per loop

您可以创建一个范围列表并简单地切片以获得每个子列表。其思想是为了提高效率,在循环理解中最小化工作

因此,将需要实施-

def reducing_ranges(n):
    r = range(n)
    return [r[i:] for i in r]
样本运行-

>>> reducing_ranges(6)
[[0, 1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [2, 3, 4, 5], [3, 4, 5], [4, 5], [5]]
运行时测试-

In [38]: %timeit [range(i,6) for i in range(6)] # @Akavall's soln
100000 loops, best of 3: 2.65 µs per loop

In [39]: %timeit reducing_ranges(6)
100000 loops, best of 3: 1.75 µs per loop

In [40]: %timeit [range(i,1000) for i in range(1000)] # @Akavall's soln
100 loops, best of 3: 9.96 ms per loop

In [41]: %timeit reducing_ranges(1000)
100 loops, best of 3: 2.96 ms per loop

好的,是的,我在想对角数组可以做些什么,但是你的解决方案是完美的。是的,熊猫数据框架需要一个类似表的数据结构,而不是这个不平衡的列表。我熟悉numpy数组,但我认为一个简单的python列表效果最好。好的,是的,我认为对角数组可以做一些事情,但你的解决方案是完美的。是的,pandas dataframe需要一个类似表的数据结构,而不是这个不平衡的列表。我熟悉numpy数组,但我认为一个简单的python列表效果最好。