学习python的第九天(内置算法:列表数据类型,元祖数据类型,字典数据类型)
程序员文章站
2022-03-25 20:16:14
5.8自我总结 1.列表类型内置算法 1.必须掌握 1.按索引取值(正向取值+反向取值),即可存也可以取 2.切片 3.长度len 4.成员运算in和not in 5.追加append 6.删除del 7.循环 2.了解 1.insert 2.pop 3.remove 4.count 5.index ......
5.8自我总结
1.列表类型内置算法
1.必须掌握
1.按索引取值(正向取值+反向取值),即可存也可以取
#用于取其中一个值 name = ['yang','wen','yi'] ##正方向取wen,也就是从左到右 pritn(name[1]) ##正方向取wen,也就是从右到左 print(name[-2])
2.切片
#用于取多个值 name = ['yang','wen','yi'] #取其中的yang wen print(name[0:2]) #和字符串类似顾头不顾尾 print(name[0:-1]) print(name[-3:-1]) print(name[:2]) #这两个是上面基础上精简的 print(name[:-1])
3.长度len
#用于长度3 name = ['yang','wen','yi'] print(len(name))
4.成员运算in和not in
#用于判断有误值在里面 name = ['yang','wen','yi'] print('wennnn' in name) #false print('wen' in name) #true
5.追加append
#只加在最后 name = ['yang','wen','yi'] print(name.append(22)) #none print(name) #['yang', 'wen', 'yi', 222]
6.删除del
name = ['yang','wen','yi'] #删除wen del name[1]
7.循环
name = ['yang','wen','yi'] for i in name: print(i) #yang #wen #yi
2.了解
1.insert
name_list = ['nick', 'jason', 'tank', 'sean'] name_list.insert(1, 'handsome') #加入后那个值的位置,加入的值 print(f"name_list: {name_list}")
2.pop
# list之pop(),pop()默认删除最后一个元素,删除一个元素 name_list = ['nick', 'jason', 'tank', 'sean'] print(f"name_list.pop(1): {name_list.pop(1)}") #会显示删除的值 print(f"name_list: {name_list}")
3.remove
# list之remove() 删除一个元素 name_list = ['nick', 'jason', 'tank', 'sean'] print(f"name_list.remove('nick'): {name_list.remove('nick')}") #会输出none
4.count
# list之count() #x显示对于值的个数 name_list = ['nick', 'jason', 'tank', 'sean'] print(f"name_list.count('nick'): {name_list.count('nick')}")
5.index
查找索引
6.clear
删除列表元素
7.copy
name_list = ['nick', 'jason', 'tank', 'sean'] print(f"name_list.copy(): {name_list.copy()}")
8.extend
# list之extend() name_list = ['nick', 'jason', 'tank', 'sean'] name_list2 = ['nick handsome'] name_list.extend(name_list2) print(f"name_list: {name_list}") #name_list: ['nick', 'jason', 'tank', 'sean', 'nick handsome'] 在末尾加入
9.reverse
# list之reverse() name_list = ['nick', 'jason', 'tank', 'sean'] name_list.reverse() print(f"name_list: {name_list}") # name_list: ['sean', 'tank', 'jason', 'nick'] 翻转
10.sort
# list之sort(),使用sort列表的元素必须是同类型的 name_list = ['nick', 'jason', 'tank', 'sean'] name_list.sort() print(f"name_list: {name_list}") #name_list: ['jason', 'nick', 'sean', 'tank'] #升序 name_list.sort(reverse=true) print(f"name_list_reverse: {name_list}") #name_list_reverse: ['tank', 'sean', 'nick', 'jason'] #降序
3,一个值或者多个值
多个值
4.有序或者无序
有序
5.可变或者不可变
可变
2.元祖类型
1.定义
(),中间加元素用,隔开
2.用法
(与列表相似,区别是可以读取不可存储改变,列表中关于存储或者改名元素的内容内置函数元祖不行)
- 索引取值
- 切片(顾头不顾尾,步长)
- 长度len
- 成员运算in和not in
- 循环
- count
- index
3.一个值或者多个值
多个值
4.有序或者无序
有序
5.可变或者不可变
不可变
3.字典数据类型内置算法
1.必须掌握
1.按key存取值:可存可取
dict = {'name':'yang','age':18} #取 姓名 dict[name]
2.长度len
dict = {'name':'yang','age':18} #取 长度 len(dict)
3.成员运算in和not in
判断有无key而不是值
4.删除del
dict = {'name':'yang','age':18} #删除名字 dal dict[name]
5.键keys()、值values()、键值对items()
#演示即可 dict = {'name':'yang','age':18} print(dict.keys()) print(dict.values()) print(dict.items()) ''' dict_keys(['name', 'age']) dict_values(['yang', 18]) dict_items([('name', 'yang'), ('age', 18)]) '''
6.循环
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4} for k, v in dic.items(): # items可以换成keys()、values() print(k, v) #a 1 #b 2 #c 3 #d 4
2.慢慢掌握
1.get
和key取值有点类似区别就是取不到不会报错,但是不能用get来更换值
2.update
# dic之update() dic1 = {'a': 1, 'b': 2} dic2 = {'c': 3}#如果dic2与dic1中key有相同的,则不会增加新的key更新值,如果没有相同的则会添加key还有值 dic1.update(dic2) print(f"dic1: {dic1}") #dic1: {'a': 1, 'b': 2, 'c': 3}
3.fromkeys
# dic之fromkeys() dic = dict.fromkeys(['name', 'age', 'sex'], none) print(f"dic: {dic}") #给目录赋予相同的值
4.setdefault
# dic之setdefault(),有指定key不会改变值;无指定key则改变值 dic = {'a': 1, 'b': 2} print(f"dic.setdefault('a'): {dic.setdefault('a',3)}") print(f"dic: {dic}") print(f"dic.setdefault('c'): {dic.setdefault('c',3)}") print(f"dic: {dic}") #dic.setdefault('a'): 1 #dic: {'a': 1, 'b': 2} #dic.setdefault('c'): 3 #dic: {'a': 1, 'b': 2, 'c': 3}
4.需要记的单词
- get 获得
- update 更新
- fromkeys 生成一个字典,修改和添加
- setdefault 只添加不修改
- count 查找个数
- index 查找索引
- insert 具体某个位置插入
- pop 删除 能显示删除的值
- remove 删除 不能显示删除的值
- clear 清除元素
- copy 复制
- extend 延伸
- reverse 颠倒
- sort 排序
5.今日题目
-
有列表
data=['alex',49,[1900,3,18]]
,分别取出列表中的名字,年龄,出生的年,月,日赋值给不同的变量:data=['alex',49,[1900,3,18]] name,age,data_1 = data year,month,day = data_1 print(name,age,year,month,day) ##################### data=['alex',49,[1900,3,18]] a,b,c = data d,e,f = c data = [a,b,d,e,f] keys = ['姓名','年龄','年','月','日'] dic= {} time = 0 while time < len(data): dic.setdefault(keys[time],data[time]) time += 1 print(dic)
- 用列表模拟队列(最先进入列表的元素会先出来):
# 答案,通过该答案模仿写出第3题 lis = [] print(f"进队列前lis: {lis}") # 进队列 for i in range(1, 6): lis.append(i) print(i) print(f"结束进入队列lis: {lis}") # 出队列 for i in range(len(lis)): print(lis.pop(0)) print(f"出队列后lis: {lis}")
-
用列表模拟堆栈(最后进入列表的元素会先出来):
new_lis = [] for i in range(1,6): new_lis.append(i) new_lis.reverse() print(new_lis)
- 有如下列表,请按照年龄排序(涉及到匿名函数):
lis=[ {'name':'alex','age':84}, {'name':'oldboy','age':73}, {'name':'egon','age':18}, ] # 通过姓名排序参考(涉及匿名函数): lis.sort(key=lambda item:item['name']) lis.sort(key=lambda item:item['age'])
-
有如下值集合
[11,22,33,44,55,66,77,88,99,90...]
,将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中,结果为
{'k1': 大于66的所有值, 'k2': 小于66的所有值}
:k1_list = [] k2_list = [] new_dict = {'k1':k1_list,"k2":k2_list} a = [11,22,33,44,55,66,77,88,99,90] for i in a: if i >=66: k1_list.append(i) elif i < 66: k2_list.append(i) print(new_dict)
统计
s='hello jason tank tank jason sean say hello dsb dsb sb'
中每个单词的个数,结果为`{'hello': 2, 'alex': 0, 'say': 1, 'sb': 1}
s='hello jason tank tank jason sean say hello dsb dsb sb' hello_num = s.count('hello') alex_num = s.count('alex') sb_num = s.split().count('sb') say_num = s.count('say') new_dic = {'hello':hello_num,'alex':alex_num,'say':say_num,'sb':sb_num} print(new_dic) #{'hello': 2, 'alex': 0, 'say': 1, 'sb': 1}
上一篇: Python第二周总结
下一篇: linux 进程通信之 管道和FIFO