一. 集 合
1.定义:是一个无序的不重复元素序列。
集合的创建: 用{}来表示。
注: 在创建一个空集合时,不能直接 a = {},这表示是创建一个空字典,应该写成:set()
2. 集合的内置方法:
增加:
add() add_update()
删除:
clear() 清空集合
discarsd() 删除集合中指定的元素
pop() 随机移除元素
remove() 移除指定元素。
查找:
1)差集 : difference() difference_update()
2) 交集: intersection() instersection_update()
3) 对称差分 : symmetric_difference() symmetric_difference_update()
4) 并集 : union()
5) 判断: isdisjoint() issubset() issuperset()
集合的应用:
1.列表去重:
运行结果如下:
eg.明明想在学校申请一些同学做问卷调查。为了实验的客观性,他先用计算机生成n个1-100的随机数,其中对于重复的数字只保留一个人,不数对应着不同学生的学号,然后再把这些数从小到大排序,按照拍好的顺序找同学做调查。请完成“去重” 和“排序”两个工作。
实验代码如下:
运行结果为:
二.字典
定义 : 是一种可变容器模型,且可以存储任意类型的对象。键一般是唯一的,如果重复最后一个键值对会替换前面,值不需要唯一。
d = { key1:value1 , key2:value2 }
字典的创建方法:
1)简单创建。
2) 内建方法 fromkeys。
3)zip 间接创建
4) dict 工厂函数创建
运行结果:
2.集合内建方法。
增加: 1)根据key值 dic[key] = value
2) setdefault() 如果key 存在,不做修改;如果key不存在则添加key-value 值。(默认情况value 为none)
3) update() 如果key存在,则更新value ;如果key不存在,则添加key-value 值。
删除:
1)clear() 清除所有元素
2)del dic[‘key’] 根据key值删除
3)pop() 弹出指定的key-value 值
查看:
1) services.key() 查看所有的key值
2) services.value() 查看所有的value值
3) services.item() 查看所有的key-value 值
eg . 词频统计 统计一篇文章中每个单词出现的次数。并且排序。
实现结果:
eg.switch 语句的实现
代码如下:
实现结果:
一键多值字典 : defaultdic
定义:能将键(key)映射到多个值的字
内置数据结构类型总结:
1.(1)可变数据类型:(可以增删改)可变数据类型,允许变量的值发生变化。即可以对变量进行增加,删除,修改的操作,在操作之后 ,只是改变了变量的的值,并不会新建一个对象,变量引用二对象地址也不会发生变化。不过,对于相同值的不同对象,在内存中则会存在不同的对象,即每个对象都会有自己的地址,相当与内存中的同值对象保存了多份。
(2) 不可变数据类型: (不可增删改)。在python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当新建了一个对象,而对于同值对象,在内存中只会存在一个,内部会有一个引用计数来记录有多少个变量引用这个对象。
2.可以for循环的: 列表,元组,集合,字典
不可以for 循环的 : 数值类型(int,float , bool,complex)
示例1: 有一个列表,其中包括10个元素,假如这个列表是[1,2,3,4,5,6,7,8,9,0],要求将列表中的每一个元素依次向前移动一个位置,第一个元素到最后一个,然后输出这个列表。最终样式为[2,3,4,5,6,7,8,9,0,1]
代码如下:
实验结果如下:
示例二: 按照下面要求实现对列表的操作:
1) 产生一个列表,其中有40个元素,每个元素是50 到100的一个随机整数。
2) 如果这个列表的数据代表着某个班级40人的分数,请计算低于平均分的学生人数。
3) 对上面的列表元素从大到小排列。
代码如下:
实验结果如下:
示例三:如果将一句话作为一个字符串,那么这个字符串中间必然会有空格(这里仅讨论英文),比如“How are you." 但 有时会在两个单词中间多打一个空格,若出现多打的空格请将空格删掉。
实验代码如下:
实验结果如下: