11

我的 Python 代码每次循环时都会生成一个列表:

list = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)

但我想保存每一个 - 我需要一个列表,对吗?

所以我尝试了:

list[i] = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)

但是 Python 现在告诉我“列表”没有定义。我不确定如何定义它。另外,列表列表与数组相同吗?

谢谢!

4

5 回答 5

42

您要创建一个空列表,然后将创建的列表附加到它。这将为您提供列表列表。例子:

>>> l = []
>>> l.append([1,2,3])
>>> l.append([4,5,6])
>>> l
[[1, 2, 3], [4, 5, 6]]
于 2012-09-06T05:03:08.967 回答
9

在您的循环之前创建您的列表,否则它将在每个循环中创建。

>>> list1 = []
>>> for i in range(10) :
...   list1.append( range(i,10) )
...
>>> list1
[[0, 1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [2, 3, 4, 5, 6, 7, 8, 9], [3, 4, 5, 6, 7, 8, 9], [4, 5, 6, 7, 8, 9], [5, 6, 7, 8, 9], [6, 7, 8, 9], [7, 8, 9], [8, 9], [9]]
于 2012-09-06T05:12:37.047 回答
8

使用 append 方法,例如:

lst = []
line = np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1)
lst.append(line)
于 2012-09-06T05:02:45.313 回答
3

首先不要用作list变量名 - 这是一个内置函数。

我不是很清楚你在问什么(多一点上下文会有所帮助),但也许这会有所帮助-

my_list = []
my_list.append(np.genfromtxt('temp.txt', usecols=3, dtype=[('floatname','float')], skip_header=1))
my_list.append(np.genfromtxt('temp2.txt', usecols=3, dtype=[('floatname','float')], skip_header=1))

这将创建一个列表(python 中的一种可变数组),并在前 2 个索引中my_list使用该方法的输出调用。np.getfromtext()

第一个可以被引用,my_list[0]第二个可以被引用my_list[1]

于 2012-09-06T05:10:56.800 回答
1

今天刚遇到同样的问题...

为了创建列表列表,您首先必须将数据、数组或其他类型的变量存储到列表中。然后,创建一个新的空列表并将刚刚创建的列表附加到它上面。最后,您应该得到一个列表列表:

list_1=data_1.tolist()
list_2=data_2.tolist()
listoflists = []
listoflists.append(list_1)
listoflists.append(list_2)
于 2019-02-07T14:58:57.127 回答