Python动态数据结构

时间:2016-01-22 07:03:23

标签: python dynamic data-structures

我将读取给定文本文件的行并选择几个格式为(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])等。 谢谢

3 个答案:

答案 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的链接

https://learnxinyminutes.com/docs/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))