第六课 数据结构

数据结构是计算机存储、组织数据的方式。
前面学习的变量,如数字,字符串是最简单的数据机构。
为了解决更多有趣的问题,我们需要引入更多巧妙设计的数据结构。

编程 = 数据结构 + 算法 稍稍有点挑战 加油哟!

List(列表)

List(列表) 是 Python 中使用最频繁的数据类型,它可以一次存储若干变量。
# 列表初始化
a = []                          # 初始化一个空列表
print(a)                        # 输出:[]
a = [1, 3, 5]                   # 初始化一个包含元素 1, 3, 5 的列表
print(a)                        # 输出:[1, 3, 5]
a = [0] * 10                    # 初始化大小为 10,元素都为 0 的列表
print(a)                        # 输出:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

# 列表增加类操作
a = [1, 3, 5]                   # 列表长度
print(len(a))                   # 输出:3
a.append(7)                     # 列表尾部增加一个元素 7
print(a)                        # 输出:[1, 3, 5, 7]
a.insert(3, 99)                 # 列表在索引 3 处插入一个元素 99
print(a)                        # 输出:[1, 3, 5, 99, 7]

# 列表删除类操作
a.pop(3)                        # 删除索引 3 处的元素
print(a)                        # 输出:[1, 3, 5, 7]
b = a.pop(2)                    # 取出列表索引 2 处的元素
print(a)                        # 输出:[1, 3, 7]
print(b)                        # 输出:5

#列表修改类操作
a[2] = 77                       # 修改列表索引 2 处元素
print(a)                        # 输出:[1, 3, 77]

#列表查找类操作
b = a[0]                        # 访问列表索引 0 处元素
print(b)                        # 输出:1
b = a[-1]                       # 访问列表最后一个元素
print(b)                        # 输出:77
b = a[1:4]                      # 访问列表索引 1到3 处元素 即a[1]、a[2]、a[3]
print(b)                        # 输出:[3, 77]
for i in a:                     # 遍历列表
    print(i, end=" ")           # 输出:1 3 77
print()

# 列表拼接
a = [1, 3, 5]
b = [7, 9]
print(a+b)                      # 输出:[1, 3, 5, 7, 9]

#二维列表
n, m = 3, 4                
a = [[0] * m for _ in range(n)] # 初始化二维列表,n 行 m 列,元素都为 0
print(a)                        # 输出:[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]

Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,常用于存储不需要更改的数据。
# 元组与列表操作类似 其他操作参考列表
a = (1, 3, 5)              # 元组
print(len(a))              # 输出:3
print(a[2])                # 输出:5

Dictionary(字典)

字典是一种映射类型,是无序{键(key):值(value)}的集合。字典是无序的对象集合,列表是有序的对象集合。字典当中的元素是通过键来存取,列表中的元素是通过偏移存取。
# 字典初始化
a = {'k1': 'v1','k2':2, 'k3': 'v3'}

# 字典增加类操作
a['k4'] = 'v4'             # 增加键值
print(a)                   # 输出:{'k1': 'v1', 'k2': 2, 'k3': 'v3', 'k4': 'v4'}

# 字典删除类操作
a.pop('k4')                # 删除索引 3 处的元素
print(a)                   # 输出:{'k1': 'v1', 'k2': 2, 'k3': 'v3'}
b = a.pop('k3')            # 取出字典KEY k3 处的元素
print(a)                   # 输出:{'k1': 'v1', 'k2': 2}
print(b)                   # 输出:v3

# 字典修改类操作
a['k2'] = 'v2'             # 修改字典KEY k2 处的元素
print(a)                   # 输出:{'k1': 'v1', 'k2': 'v2'}

# 字典查找类操作
print(a['k1'])             # 输出:v1

for i in a:                # 遍历字典的key
    print(i, end=" ")      # 输出:k1 k2 
print()

for i in a:                # 遍历字典的value
    print(a[i], end=" ")   # 输出:v1 v2 
print()

Set(集合)

集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。常用于去重和快速查询元素是否存在。集合使用大括{}表示。
a = {'a1', 'a2', 'a3', 'a4'}   # 集合a
b = {'a1', 'a2', 'a5', 'a6'}   # 集合b
c = set()                      # 空集合

#常规操作
print(len(a))                  # 输出:4
a.add('a5')                    # 增加元素
print(a)                       # 输出:{'a1', 'a2', 'a3', 'a4', 'a5'}
a.discard('a5')                # 删除元素 2 discard 不存在的元素不会报错
print(a)                       # 输出:{'a1', 'a2', 'a3', 'a4'}

if 'a1' in a :                 # 判断元素是否在集合中
    print('Yes')               # 输出:Yes
else :
    print('No')

#集合核心操作 交、差、并、补
c = a & b                      # a和b的交集 即:a和b都存在的元素
print(c)                       # 输出:{'a2', 'a1'}
c = a - b                      # a和b的差集 即:a去除b含有的元素 剩下的元素
print(c)                       # 输出:{'a3', 'a4'}
c = a | b                      # a和b的并集 即:a或b存在的元素 组合在一起
print(c)                       # 输出:{'a3', 'a1', 'a4', 'a6', 'a2', 'a5'}
c = a ^ b                      # a和b的补集 即:a、b不同时存在元素 组合在一起
print(c)                       # 输出:{'a3', 'a4', 'a6', 'a5'}

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注