【python地图】基础1数据结构

【python地图】基础1数据结构_第1张图片主要对数据结构进行简单介绍,至于其具体的数据结构相关的使用及函数另外文章再说明!!!

一、原始数据结构

1.integers -- 从负无穷大到无穷大的整数

2.float -- 有理数,使用时不用特别声明,python动态存储

3.string -- 字符串

4.Boolean -- True(1)和False(0)

5.decimal -- 十进制定点和浮点运算

主要是用于避免二进制精度问题,如1.1+2.2 = 3.30000003,而decimal加入了精度的概念,保留几位小数自定义。

6.fractions -- 分数

二、非原始数据结构

1.array -- python中很少用,可以不做了解

2.list -- 列表

stacks -- 堆栈是根据Last-In-First-Out(LIFO)概念插入和移除的对象的容器。

python通过列表实现,主要通过列表的两个函数append()和pop()。

# Bottom -> 1 -> 2 -> 3 -> 4 -> 5 (Top)
stack = [1,2,3,4,5]
stack.append(6) # Bottom -> 1 -> 2 -> 3 -> 4 -> 5 -> 6 (Top)
print(stack)

# [1, 2, 3, 4, 5, 6]

stack.pop() # Bottom -> 1 -> 2 -> 3 -> 4 -> 5 (Top)
stack.pop() # Bottom -> 1 -> 2 -> 3 -> 4 (Top)
print(stack)

# [1, 2, 3, 4]

Queue -- 队列是根据先进先出(FIFO)原则插入和移除的对象的容器。形象的比喻--排队买东西,最先排队的人买完了就最先走了。但用list实现起来效率慢,涉及到列表元素移动,一般不通过列表来实现。要实现队列可以用collections.deque来实现。

from collections import deque


# first -> Eric -> John-> Michael (last)
queue = deque(["Eric", "John", "Michael"])

queue.append("Terry")           # first -> Eric -> John -> Michael -> Terry (last)

queue.append("Graham")          # first -> Eric -> John -> Michael -> Terry -> Graham (last)

queue.popleft()                 # first -> John -> Michael -> Terry -> Graham (last)

queue.popleft()                 # first -> Michael -> Terry -> Graham (last)

print(queue)                    # deque(['Michael', 'Terry', 'Graham'])

Graphs -- 数学和计算机科学中的图是由节点组成的网络,节点也称为顶点,它们可以相互连接,也可以不相互连接。 连接两个节点的线或路径称为边。 如果边缘具有特定的流动方向,那么它是有向图,方向边缘被称为弧。 否则,如果未指定方向,则该图形称为无向图。这可能听起来非常理论化,当你深入挖掘时会变得相当复杂。 然而,图形是数据科学中特别重要的概念,通常用于模拟现实生活中的问题。 社会网络,化学和生物学的分子研究,地图,推荐系统都依赖于图形和图形理论原理。这有个Python实现图的例子:

graph = {"a": ["c", "d"],
         "b": ["d", "e"],
         "c": ["a", "e"],
         "d": ["a", "b"],
         "e": ["b", "c"]
         }


def define_edges(graph):
    edges = []
    for vertices in graph:
        for neighbour in graph[vertices]:
            edges.append((vertices, neighbour))
    return edges


print(define_edges(graph))

# [('a', 'c'), ('a', 'd'), ('b', 'd'), ('b', 'e'), ('c', 'a'), ('c', 'e'), ('e', 'b'), ('e', 'c'), ('d', 'a'), ('d', 'b')]

Trees -- 树有助于定义现实世界场景,并且从游戏世界到设计XML解析器,以及PDF设计原则都基于树。在数据科学中,“基于决策树的学习”实际上构成了一个大范围的研究。存在许多着名的方法,如装袋,提升使用树模型来生成预测模型。像国际象棋这样的游戏构建了一棵巨大的树,其中包含所有可能的动作来分析和应用启发式方法来决定最佳操作。

class Tree:
    def __init__(self, info, left=None, right=None):
        self.info = info
        self.left  = left
        self.right = right

    def __str__(self):
        return (str(self.info) + ', Left child: ' + str(self.left) + ', Right child: ' + str(self.right))

tree = Tree(1, Tree(2, 2.1, 2.2), Tree(3, 3.1))
print(tree)

# 1, Left child: 2, Left child: 2.1, Right child: 2.2, Right child: 3, Left child: 3.1, Right child: None

3.tuple -- 元组

4.dictionary -- 字典

5.set -- 集合

6.file -- 文件

 

 

 

你可能感兴趣的:(python知识图谱,python)