一、集合类型及操作
1.集合定义及特点
定义:集合是多个元素的无序组合,用{}表示
特点:集合内元素无序且唯一(不存在相同元素),集合元素不能说可变数据类型
2.集合操作
①建立集合类型:使用{}或set()
建立空集合类型:只能使用set()
(因为python中通过{}建立的是空集合(集合用的多))
如:
>>> A = {"python", 123, "python",("python", 123)}
#使用{}建立集合
{123, 'python',('python', 123)}
>>> B = set("pypy123")
#使用set()建立集合
{'1',p', '2', '3','y'}
②集合间操作
③集合操作符(获取到新集合)
如:
A = {'p','y', 123}
B = set("pypy123")
A|B -- >{'1','p','2','y','3', 123}
A-B -->{123}
B-A -->{'1','2','3'}
A&B -->{'p','y'}
A^B -->{'2',123,'3','1'}
③集合增强操作符(直接更新集合)
④集合的处理方法 可以使用for in或while来遍历元素,(获取集合元素时,可能与你定义顺序不同)
3.集合类型应用场景
①包含关系的比较
对于包含关系的比较,可以使用集合类型来表达一组数据,并使用关键字"in"判断其他元素是否在集合中
如:
>>> "p" in {"p", "y",123}
True
>>> {"p", "y"} >= {"p", "y",123}
False
②数据去重
可以利用集合中元素不能重复的特点,把列表转换为集合,达到元素去重效果。
如:
>>>ls=["p","p","y","y", 123]
s=set(ls)
{'p','y',123}
#利用了集合无重复元素的特点
>>>lt = list(s) #还可以将集合转换为列表
['p','y',123]
二、序列类型及操作
1.序列类型定义及特点
定义:序列是具有先后关系的一组元素,元素间由序号引导,通过下标访问序列的特点元素
特点:
①序列中元素可以相同,元素类型可以不同
②序列是一个基类类型,一般使用序列类型衍生出来的类型(字符串,列表,元组),序列类型的性质同样在衍生类型中适用
2.序列的处理函数及方法
①序列类型的通用操作符
如:
>>Is =["python",123,".io"]
>>>ls[::-1]
['.io','123','python']
>>>s="python123.io"
>>>s[::-1]
'oi.321nohtyp'
②序列类型通用函数及方法
如:
>>> ls = ["python", 123, ".io"]
>>> len(ls)
3
>>> s = "python123.io"
>>> max(s)
'y'
3.元组
①元组类型定义及特点
定义:元组是序列类型的一种扩展,一旦被创建就不能被修改,可以通过()或tuple()创建元组,元素间用逗号分隔,可以使用或不使用小括号()
特点:元组的元素不可变,对元组进行了操作并不会更改原元组的值,而是创建了一个新的元组。
②元组的操作
元组的类型的定义:
如:
>>> creature = "cat", "dog", "tiger"
>>> creature
('cat', 'dog', 'tiger')
>>> color = (0×001100, "blue", creature)
>>> color
(4352,'blue', ('cat', 'dog', 'tiger', 'human'))
元组继承了序列类型的全部通用操作,
如:
>>> creature = "cat", "dog", "tiger"
>>> creature[::-1]
('tiger', 'dog', 'cat')
>>> color = (0×001100, "blue", creature)
>>> color[-1][2]
'tiger'
4.列表
①列表的定义及特点
定义:列表是序列类型的一种扩展,创建后可以随意修改,可以使用[]或list()创建,元素间用逗号分隔
特点:列表中各类型可以不同,无长度限制
②列表的操作
列表类型定义:
>>>Is =["cat","dog","tiger", 1024]
>>>ls
['cat', 'dog', 'tiger', 1024]
>>>lt = Is
>>>lt ['cat', 'dog', 'tiger', 1024]
['cat','dog','tiger',1024]
方括号[]才是真正创建了一个列表,赋值仅值传递引用
把一个列表复制给另一个列表,只是重新命名了一个列表名,两个列表名都指向同一地址,未重新创建一个列表
列表类型操作函数和方法:
如:
>>>Is = ["cat", "dog", "tiger", 1024]
>>>1s[1:2] =[1,2,3, 4]
['cat',1,2,3, 4,'tiger', 1024]
>>>del ls[::3]
[1,2, 4, 'tiger']
>>>1s*2
[1,2,4, 'tiger', 1, 2, 4, 'tiger']
如:
>> 1s = ["cat","dog", "tiger", 1024]
>>> Is.append(1234)
['cat','dog', 'tiger',1024-1234]
>>>Is.insert(3,"human")
['cat','dog','tiger', 'human', 1024,1234]
>>>ls.reverse()
[1234,1024,'human','tiger',‘dog', 'cat']
⭐️考察默写题:
定义空列表It
向t新增5个元素
修改It中第2个元素
向t中第2个位置增加一个元素
从It中第1个位置删除一个元素
删除lt中第1-3位置元素
判断It中是否包含数字0
向t新增数字0
返回数字0所在lt中的索引
It的长度
It中最大元素
清空t
参考答案见文章最后面
5.序列类型应用场景
①数据表示: 元组 和 列表
元组用于元素不改变的应用场景,更多用于固定搭配场景
列表更加灵活,它是最常用的序列类型
最主要作用:表示一组有序数据,进而操作它们
②元素遍历
列表:
for item in ls:
<语句块>
元组:
for item in tp:
<语句块>
③数据保护
如果不希望数据被程序所改变,转换成元组类型
>>>1s =["cat","dog","tiger", 1024]
>>>lt = tuple(ls)
>>>lt
('cat','dog','tiger', 1024)
三、字典类型及操作
1.字典定义及特点
①字典类型是"映射"的表现。字典是键值对的集合,键值对之间无序。采用{}和dict()创建,键值对用冒号:表示
②映射类型与序列类型区别:
序列类型是由0...N整数作为数据默认索引
映射类型是由用户为数据定义索引
所谓"映射":指的是一种键(索引)和值(数据)的对应。
③基本用法:在字典变量中,通过键获得值
赋值:
<字典变量>={く键1>:<值1>,...,<键n>:<值n>}
更改或添加:
<值>=<字典变量>[<键>]
<字典变量>[<键>]=<值>
[]用来向字典变量中索引或增加元素
如:
>>>d={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>> d
{'中国':'北京','美国':'华盛顿','法国':'巴黎'}
>>> d["中国"]
北京
>>> de = {} ; type(de)
<class 'dict'>
type(x):返回变量x的类型
2.字典的处理函数及方法
如:
>>>d ={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>>"中国" in d
True
>>>d.keys()
dict_keys(['中国','美国','法国'])
>>>d.values()
dict_values(['北京','华盛顿','巴黎'])
如:
>>>d ={"中国":"北京","美国":"华盛顿","法国":"巴黎"}
>>> d.get("中国","伊斯兰堡")
'北京'
>>>d.get("巴基斯坦","伊斯兰堡")
'伊斯兰堡'
>>>d.popitem()
('美国’,‘华盛顿')
⭐️字典方法默写
定义空字典d
向d新增2个键值对元素
修改第2个元素(字典无顺序,用第二个键名来)
判断字符"c"是否是d的键
计質d的长度
清空d
参考答案见文章最后面
4.字典类型应用场景
①映射的表达
映射无处不在,键值对无处不在。
- 例如:统计数据出现的次数,数据是键,次数是值
-最主要作用:表达键值对数据,进而操作它们
②元素遍历
for k in d:
<语句块>
参考答案:
列表:
>>>lt = []
>>>lt += [1, 2, 3, 4, 5]
>>>lt[2] =6
>>>lt.insert(2, 7)
>>>del lt[1]
>>>del lt[1:4]
>>>0 in lt
>>>lt.append(0)
>>>lt.index(0)
>>>len(lt)
>>>max(lt)
>>>lt.clear()
字典:
>>>d={}
>>> d["a"] = 1;d["b"] = 2
>>> d["b"]=3
>>> "c" in d
>>> len(d)
>>> d.clear()