PYTHON 如何同时创建多个空列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PYTHON 如何同时创建多个空列表相关的知识,希望对你有一定的参考价值。

我想创a1,a2,.....a10.10个空列表,如何用FOR循环实现?

不能同时创建多个列表。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。

与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。

参考技术A

可以使用setattr来添加变量


def main():
    class test(object):
        def __init__(self):
            pass
    t = test()   
    for  i in range(1,11):
        setattr(t, "a"+str(i), [])
    print t.__dict__
    print t.a1


输出结果为

'a10': [], 'a1': [], 'a3': [], 'a2': [], 'a5': [], 'a4': [], 'a7': [], 'a6': [], 'a9': [], 'a8': []
[]

本回答被提问者采纳
参考技术B for i in range(1,11):
    exec 'a%s = []' % i

参考技术C for i in range(10):
exec 'a'+str(i+1)+' = []'
参考技术D >>> a=[[]]*10
>>> a
[[], [], [], [], [], [], [], [], [], []]
>>> a[1]='123'
>>> a[2]='456'
>>> a[1]
'123'
>>> a[1]+a[2]
'123456'
以上是在python3.7 shell中的测试情况,意思就是新建含10个空列表的列表,这样你就可以使用 a[1]至a[10]了

Python - 如何创建一个空的numpy数组并附加到它,如列表[重复]

【中文标题】Python - 如何创建一个空的numpy数组并附加到它,如列表[重复]【英文标题】:Python - How to create an empty numpy array and append to it, like lists [duplicate] 【发布时间】:2019-02-28 07:21:55 【问题描述】:

这是我在互联网上不容易找到的东西。创建np.arrays 很容易,但是如何创建一个空的以便随时追加?

【问题讨论】:

你不应该这样做。 Numpy 数组不是为了改变大小而设计的,首先构建列表然后转换为数组,或者初始化一个正确形状的空数组并按索引填充值(如果最终形状已知) 但如果你确实想要这样做,Google 搜索中的“numpy append”会给出this 作为第一个结果 您通常不要这样做numpy.ndarray 对象并非旨在让您这样做。 Numpy 数组和list 对象具有非常不同的性能权衡。如果你真的想这样做,请使用列表并在最后转换为数组。 @PhilippeFanaro 绝对不可取。 np.append 是线性时间运算。使用它来填充numpy.array 将创建二次时间行为。相比之下,list.append 是(aritized)常数时间,因此总体而言,构建列表将是线性时间。 您不仅会牺牲内存,而且会在时间复杂度方面受到巨大的打击。除此之外,如果您尝试在频繁更改大小的列表上使用 numpy,则可能是时候检查一下为什么要使用 numpy 【参考方案1】:

建议使用普通的python列表,最后将列表转换为numpy数组。

x = np.asarray(x)

【讨论】:

【参考方案2】:

1。一个黑客

您可以使用np.empty() 函数创建一个空数组并将维度指定为(0, 0),然后使用np.append() 稍后附加项目。

>>> a = np.empty((0, 0))
>>> a
array([], shape=(0, 0), dtype=float64)
>>> b = np.append(a, [1, 2])
>>> b
array([1., 2.])

2。不过……

上面的hack是不可取的,谨慎使用。附加到lists 具有O(N) 复杂性,而附加到数组具有O(N^2)(除了不同的内存使用)。那么,正确的方法应该是附加到lists。请注意,在numpy arrays 上使用list() 将它们转换为lists 是不正确的,因为您会得到numpy arrayslist。相反,请使用.tolist() 方法。

>>> a = np.array([[1, 2], [3, 4]])
>>>
>>> list(a)
[array([1, 2]), array([3, 4])]
>>>
>>> a.tolist()
[[1, 2], [3, 4]]

【讨论】:

以上是关于PYTHON 如何同时创建多个空列表的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas Dataframe:如何同时将多个索引附加到列表中?

python0.5-----列表

python --006--列表

创建多个用逗号分隔的空列表

在python中建立一组列表后,怎么从列表中提取元素

多个进程如何在 Erlang 中同时使用一个公共列表?