封装解构,集合,字典,内建函数和简单选择排序相关知识及习题

封装

将多个值使用逗号分割,组合在一起
本质上,返回一个元组,只是省掉了小括号
python特有语法,被很多语言学习和借鉴

解构

把线性结构的元素解开,并顺序的赋给其它变量
左边接纳的变量数要和右边解开的元素个数一致

转置矩阵

方阵
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题
利用封装解构完成代码
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题
矩阵
先开辟空间再利用封装解构完成代码
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题
利用enumerate函数得到索引值完成代码
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题

集合

可变的 、 无序的 、 不重复 的元素的集合
set的元素要求必须可以hash
元素不可以索引
set可以迭代
set增加
add(elem)
增加一个元素到set中,如果元素存在,什么都不做
update(*others)
合并其他元素到set集合中来,参数others必须是可迭代对象,就地修改
set删除
remove(elem)
从set中移除一个元素,元素不存在,抛出KeyError异常。为什么是KeyError?
discard(elem)
从set中移除一个元素,元素不存在,什么都不做
pop() -> item
移除并返回任意的元素。为什么是任意元素?空集返回KeyError异常
clear()
移除所有元素
set修改、查询
修改
要么删除,要么加入新的元素
查询
非线性结构,无法索引
遍历
可以迭代所有元素
成员运算符
in 和 not in 判断元素是否在set中
集合练习
随机产生2组各10个数字的列表,如下要求:
每个数字取值范围[10,20]
统计20个数字中,一共有多少个不同的数字?
2组之间进行比较,不重复的数字有几个?分别是什么?
2组之间进行比较,重复的数字有几个?分别是什么?
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题

字典

key-value键值对的数据的集合
可变的 、 无序的 、 key不重复
字典增加和修改
d[key] = value
将key对应的值修改为value
key不存在添加新的kv对
update([other]) -> None
使用另一个字典的kv对更新本字典
key不存在,就添加
key存在,覆盖已经存在的key对应的值
就地修改
字典删除
pop(key[, default])
key存在,移除它,并返回它的value
key不存在,返回给定的default
default未设置,key不存在则抛出KeyError异常
popitem()
移除并返回一个任意的键值对
字典为empty,抛出KeyError异常
clear()
清空字典
字典遍历
for ... in dict
既可以遍历key,也能遍历value
defaultdict
collections.defaultdict([default_factory[, ...]])
第一个参数是default_factory,缺省是None,它提供一个初始化函数。当key不存在的时候,会调用
这个工厂函数来生成key对应的value
OrderedDict(有序字典)
collections.OrderedDict([items])
key并不是按照加入的顺序排列,可以使用OrderedDict记录顺序
字典练习
字符串重复统计
字符表'abcdefghijklmnopqrstuvwxyz'
随机挑选2个字母组成字符串,共挑选100个
降序输出所有不同的字符串及重复的次数
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题

简单的选择排序

属于选择排序
两两比较大小,找出极值(极大值或极小值)被放置在固定的位置,这个固定位置一般指的是
某一端
结果分为升序和降序排列
标注的是二元方法,在其中加入判断极大值是否与极小值交换位置,并且其中加入了优化判断是否提前完成排序
封装解构,集合,字典,内建函数和简单选择排序相关知识及习题

内建函数

标识 id
哈希 hash
类型 type
类型转换
float() int() bin(二进制字符串)hex(十六进制) oct(八进制) bool() list() tuple() dict() set() complex() bytes() bytearray()
输入 input([prompt])
打印 print(*object,sep='',end='\n',file=sys.stdout,flush=False)
绝对值 abs(x)
最大值max() 最小值min()
round() 四舍六入五取偶
pow(x,y)等价于x**y
range(stop)
divmod(x,y)等价于 tuple(x//y,x%y)
sum(iterable[,star t])对可迭代对象的所有数值元素求和
sum(range(1,100,2))
chr(i) 给一个一定范围的整数返回对应的字符
ord(c) 返回字符对应的整数
str() 、repr()、ascii() 后面说
sorted(iterable[, key][, reverse]) 排序
返回一个新的列表,默认升序
reverse是反转
翻转 reversed(seq)
返回一个翻转元素的迭代器

猜你喜欢

转载自blog.51cto.com/13896223/2161644