num = [7,14,21,28,35,42,49,56,63]print("序列num的长度为:", len(num))print("序列",num,"中最大值为",max(num))print("序列",num,"中最小值为",min(num))
运行结果:
序列num的长度为: 9序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中最大值为 63序列 [7, 14, 21, 28, 35, 42, 49, 56, 63] 中最小值为 7
序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称之索引或位置。通过该索引可以取出相应的值;(在python中内置了5个常用的序列结构:列表,元组,集合,字典和字符串)
1.1索引
序列中的每一个元素都有一个编号,也称为索引。注意这个索引是从0开始递增的。即下标为0表示第一个元素,下标1表示第二个元素。。。。
元素一 元素二 元素三 元素.... 元素n
0 1 2 .... n-1 <—索引(下标)
当然索引也可以是负数,这个索引从右向左计数,也就是从最后一个元素开始计数,即最后一个元素的索引值是-1
verse = ["圣安东尼奥马刺","洛杉矶湖人","休斯敦火箭","金州勇士"]print(verse[2])print(verse[-1])
输出结果:
休斯敦火箭
金州勇士
1.2 切片
切片操作是访问序列中元素的另一种方法,他可以访问一定范围内的元素。通过切片操作可以生成一个信的序列。其语法格式如下:
sname[start : end : step]
sname:表示序列的名称
start:表示切片的开始位置(包括该位置),如果没有指定,默认就是0
end:表示切片截止位置(不包括),如果没有指定,默认为序列的长度
step:表示切片的步长,如果省略,默认为1。
通俗解释:隔“步长”取值
1.3序列相加
使用(+)运算符实现。说白了就是“拼接”
本质就是python语言赋值语句,源程序:
源程序
程序运行结果:
程序运行结果
a的结果是1。
问题: 哈夫曼编码,英文名称 Huffman Coding,有时也翻译为霍夫曼编码,在1952年提出的,是最好的编码方式。哈夫曼编码在电子通讯方面有着重要的应用,同时也广泛应用于数据压缩,其压缩率通常在20% 90%之间 赫夫曼码是可变字长编码(VLC)的一种。哈夫曼树是最优二叉树, 带权路径长度最小的二叉树。
原理:
假设有几个数字40,10,20,16,14。
首先将这五个数字按照从小到大的顺序排列:10, 14,16,20, 40。
构建哈夫曼树:
1.首先选取10,14
2.重新排序:16,20,24,40
3.重新排序24,36,40,60
4.按照二叉树左0右1,构建哈夫曼树
所以最终得到数字10的编码为100,数字14的编码为101,数字16的编码为110,数字20的编码为111,数字40的编码为0。
代码:
运行结果: