我将读取给定文本文件的行并选择几个格式为(int,int \ n)的数据块。每次行数不同,所以我需要Python中的动态大小的数据结构。我还想将这些块存储在2D数据结构中。如果您熟悉MATLAB编程,我希望有类似结构A {n} n =数据块的数量,每个块包含上面提到的几行数据。 您会推荐哪种类型的数据结构?以及如何实施它? 即A {0} =([1,2],[2,3],[3,4])A {1} =([1,1],[2,2],[5,5],[ 7,4])等。 谢谢
答案 0 :(得分:3)
python列表可以包含列表以及任何不同的数据类型。
l = []
l.append(2) # l is now (2)
l.extend([3,2]) # l is now (2,3,2)
l.append([4,5]) # l is now (2,3,2,[4,5])
list.Append将作为参数给出的任何内容附加到列表中 而list.extend使给定参数成为列表的尾部。
我猜你需要的列表会出现这样的情况:
l = ([[1,2],[2,3],[3,4]],[[1,1],[2,2],[5,5],[7,4]])
PS:这是一个让你开始学习python的链接
答案 1 :(得分:2)
请记住,如果您正在从文本文件中读取数据,格式为字符串,则需要使用int()将字符串转换为int。
答案 2 :(得分:1)
该问题已通过附加列表的2个步骤解决。
import numpy as np
file = ('data.txt')
f = open(file)
i = 0
str2 = '.PEN_DOWN\n'
str3 = '.PEN_UP\n'
A = []
B = []
for line in f.readlines():
switch_end = False
if (line == str2) or (~switch_end):
if line[0].isdigit():
A.append(line[:-1])
elif line == str3:
switch_end = True
B.append(A)
A = []
B.append(A)
f.close()
print(np.shape(A))
print(np.shape(B))