授课内容:处理组合数据类型的各种函数(列表、元祖、字典、集合)
一、列表
(1)列表的生成:ls = ['1',1,{1:'Jack',2:'Rose'},('Jack','Rose')],列表是一个很包容的组合数据类型,元素可以是数字、字符串、布尔数据、列表、元祖、字典、列表等等,并且列表是一个有顺序的元素;
(2)列表的性质:访问ls[5]访问它的第6个元素,ls[起始标号:终止标号(取不到):步长];ls[-1:-6:-1]
(3)列表的操作:增删查改,①增加一个元素:ls.append('ww'),ls.append(['we','here'])增加多个元素:ls.extend(['we','here']),在某个位置插入一个元素ls.insert(?);②删除一个元素:ls.remove('we'),ls.pop()删除最后一个元素;③查找一个元素:ls[22];④修改一个元素ls[2]= 'apple';排序:永久排序函数-ls.sort(),暂时排序函数-lss = sorted(ls),默认从小到大进行排序,如果需要从大到小进行排序可以用reverse = ‘True’关键字;复制:ls = [1,2,3],ls1 = ls 相当于给ls起了一个别名ls1,他们同时指向[1,2,3],真正的复制可以是:lss = ls.copy()或者 lss = ls[:]
二、元组
(1)元祖的生成:ts = (‘asas’,‘打发’,1)
(2)元组的性质:元组是不可改变的数据
(3)元组的操作:元组一旦确定就不能再变化了;其次,打包操作,函数返回值有多个数据,自动打包成一个元组;最后,解包操作,一个元组解包变成若干个独立的数据;
三、字典
(1)字典的生成:{1:‘张三’,2:“李四”,3:“王五”}
(2)字典的性质:字典是无序的,访问健值 s[key]可以得到value
(3)字典的操作:增删查改和get函数的使用。比如输出:“牛羊羊牛马马马牛羊牛马牛牛”,数出每个字符有多少个然后构成一个字典。
四、集合
(1)集合的生成:g = {‘张三’、‘王五’,‘李四’}
(2)集合的性质:集合没有顺序,里面不能有重复的元素
(3)集合的操作:增删查改;
问题:集合和列表的转换·
难点,容易忘记的地方
***(元组的打包,解包操作)
(1)用字典操作数相同单词的个数get()函数
图片来源于互联网
(2)得到字典的所有键keys,得到字典的所有值values
s = {202001:‘张三’,202002:‘李四’,202003:‘王五’}
skeys = list(s.keys())
svalues = list(s.svalues())
#s = {202001:'张三',202002:'李四',202003:'王五'}
s = {202001:'张三',202002:'李四',202003:'王五'}
print(list(s.keys()))
print(list(s.values()))
运行结果:
[202001, 202002, 202003]
['张三', '李四', '王五']
(3)遍历字典的所有元素s.items()
e = list(s.items())
print(e)
for a,b in s.items():
print(a,b)
运行结果:
[(202001, '张三'), (202002, '李四'), (202003, '王五')]
202001 张三
202002 李四
202003 王五
(4)字典删除某个键值对del s[12306]删除指定的键值对或者s.pop(key)删除字典的最后一对键值
del s[key] 表示删除了一个键值对
s.pop(key)表示删除了一个键值对,并返回这个数据
print(s.pop(202003))
运行结果:
‘王五’
字典删除和列表删除的表现形式不一样非常容易弄混,应该多用多注意
ls.remove("junk food")
ls.pop()删除掉列表里的最后一个数据,并返回这个数据,而且列表可以指定删除第几个数据,ls.pop(2)表示删掉列表里的第三个数据
(4)集合的交并补集操作
列表转换成集合,集合转换成列表
小结:
(1)[ ]和()访问组合元素时用[] 比如列表ls[2],元组t[2],字典z[2010001],集合s[2]XXX这种表达式错误的,因为集合里的元素是无序的,访问集合的第几个元素是没有意义的,访问字典里的键值对也只能根据键来访问值,
使用某个函数一般用圆括号(),圆括号里面是参数。ls.sort()列表永久翻转,w = sorted(ls)表示列表暂时翻转,原列表保持不变,默认排序规则是从小到大。如果要从大到小排序需要用到关键字reverse = ‘True’
(2)列表,元组,字典,集合中的元素均用逗号隔开
(3)字典中的键key必须是不可变的,比如元组,字符串,数字等等,不能是列表,字典,集合等等
(4)字典的get函数的应用
(5)重点中的重点是字符串的操作和字典的操作