PYTHON 如何同时创建多个空列表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PYTHON 如何同时创建多个空列表相关的知识,希望对你有一定的参考价值。
我想创a1,a2,.....a10.10个空列表,如何用FOR循环实现?
不能同时创建多个列表。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
可以使用setattr来添加变量
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是不可取的,谨慎使用。附加到list
s 具有O(N)
复杂性,而附加到数组具有O(N^2)
(除了不同的内存使用)。那么,正确的方法应该是附加到list
s。请注意,在numpy arrays
上使用list()
将它们转换为list
s 是不正确的,因为您会得到numpy arrays
的list
。相反,请使用.tolist()
方法。
>>> a = np.array([[1, 2], [3, 4]])
>>>
>>> list(a)
[array([1, 2]), array([3, 4])]
>>>
>>> a.tolist()
[[1, 2], [3, 4]]
【讨论】:
以上是关于PYTHON 如何同时创建多个空列表的主要内容,如果未能解决你的问题,请参考以下文章