列表, 元组, range() 知识总结
一:列表的增删改查
1,列表增加元素
lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"] 1,#在屁股后面添加 lst.append("黄宏") # 在原有的基础上进行的操作 2,# 在xxx位置插入xxxx内容 lst.insert(1,"王力宏") 3,迭代增加 lst.extend(["麻花藤", "马云", "王健林", "许家印"]) # 迭代添加 print(lst)
2,列表删除元素
lst = ["赵四", "施瓦星格", "黄渤", "郭达森", "赛利亚"] 1,pop() data = lst.pop(2) # 返回被删除的数据 print(data) print(lst) 2,remove() lst.remove("赵四") # 删除元素. print(lst.remove("赵四")) lst.remove("刘能") # 如果不存在会报错 3,切片删除 del lst[1:3] print(lst) 4,清空 lst.clear() print(lst)
3,利用切片修改,和删除后增加
lst = ["王者农药", "魔兽世界", "DNF", "逆水寒", "反恐精英"] lst[0] = "扫雷" print(lst) lst[3] = "吃鸡" # lst[1:3] = ["跑跑卡丁车"] # 先删除后添加 # lst[1::2] = ["QQ华夏","QQ三国"] # 切片修改的时候. 如果步长不是1. 注意元素的个数 print(lst) lst = ["锅包肉", "好人家火锅", "巫山烤鱼", "清水煮白菜", "烤鸭"] for el in lst: # element(元素) print(el)
二:列表的知识补充
1,列表转成字符串
# 将列表转换成字符串. 每个元素之间用_拼接 s = "**".join(["高华新", "刘清扬", "崔园樟"]) #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的参 print(s) #数是列表 ss = "高华新**刘清扬**崔园樟" ss.split("**") #用的都是字符串的方法,所以字符窜在前,方法属性在后,括号里面的 #参数是分隔符 #字符串转换成列表: split() #把列表转换成字符串: join() # s = "_".join("马化腾") # print(s) # # join(可迭代对象)
2,列表和字典都不能再循环的时候进行删除.
#举例说明 lst = ["张国荣", '张铁林', '张国立', "张曼玉", "汪峰"] for el in lst: if el.startswith("张"): lst.remove(el) print(lst) #输出结果如下 E:\老男孩课程\venv\Scripts\python.exe "E:/老男孩课程/day04/code/04 知识点补充.py" ['张铁林', '张曼玉', '汪峰'] ################################# lst = ["紫云", "大云", "玉溪", "紫钻","a","b"] lst.clear() new_lst = [] # 准备要删除的信息 for el in lst: # 有一个变量来记录当前循环的位置 new_lst.append(el) # 循环新列表, 删除老列表 for el in new_lst: lst.remove(el) # # 删除的时候, 发现. 剩余了一下内容. 原因是内部的索引在改变. # 需要把要删除的内容记录下来. 然后循环这个记录. 删除原来的列表 print(lst) print(new_lst) lst = ["张国荣", '张铁林', '张国立', "张曼玉", "汪峰"] # 删掉姓张的 # 记录姓张的. zhangs = [] for el in lst: if el.startswith("张"): zhangs.append(el) for el in zhangs: lst.remove(el) print(lst) print(zhangs) # 字典 # dic = {"提莫":"冯提莫", "发姐":"陈一发儿", "55开":"卢本伟"} # # dic.clear() # lst = [] # for k in dic: # lst.append(k) # # for el in lst: # dic.pop(el) # print(dic) # 综上. 列表和字典都不能再循环的时候进行删除. 字典再循环的时候不允许改变大小 # dic = {"apple":"苹果", "banana":"香蕉"} # # 返回新字典. 和原来的没关系 # ret = dic.fromkeys("orange", "橘子") # 直接用字典去访问fromkeys不会对字典产生影响 # ret = dict.fromkeys("abc",["哈哈","呵呵", "吼吼"]) # fromkeys直接使用类名进行访问 # print(ret) # a = ["哈哈","呵呵", "吼吼"] # ret = dict.fromkeys("abc", a) # fromkeys直接使用类名进行访问 # a.append("嘻嘻") # print(ret)
三:列表的相关操作
1,列表的嵌套
lst = ["alex", "gay","wusir",["范冰冰","李冰冰",[1, "火锅", "ritian", "凤爪"],"王冰冰"]] print(lst[3][2][1]) # 火锅 lst[3][2][2] = lst[3][2][2].upper() print(lst) lst[3][2][0] = lst[3][2][0] + 99 print(lst)
2,列表的排序,翻转
lst = [1,5,3,4,3,2,44,3,2,22] lst.sort(reverse=True) # 排序. 默认升序, # reverse=True 降序 print(lst) lst = ['晓雪',"小茹", "小花","晓梅"] lst.reverse() # 翻转 print(lst) print(len(lst))
四:元组书写问题
1,元组的书写
# print((1+3)*5) # print((3)) 上面print中的小括号表示优先级 元组的书写规范 1,空元组 tu=tuple() #表示空元组 1,只有一各元素的元组 tu=(3,) 表示只有一个元素的元组
2,元组的特点,元组只能查看,不能增删改
tu = ("人民币", "美元", "英镑", "欧元") tu.append("哈哈") tu[0] = "日元" # 不予许修改 del tu[2] # 删除也不行 print(tu[2]) # 索引可以用 print(tu[::2]) for el in tu: print(el)
3,元组的特点,元组的第一层是不能进行赋值的. 内部元素是没有要求
# 元组的第一层是不能进行赋值的. 内部元素是没有要求 tu = (1, "哈喽", "how are you?", "alex", ["alex"]) tu[3].upper() print(tu)
五:range()函数
1,range()函数详解
#range()函数返回的是一个可迭代对象 一,书写规范 range(start,end,step) 其中start表示开开始,可以省略,end表示结束,这个必修写,不能神略,step表示步长,也可以神略,如果不写默认为1 二,实例 #1. range(n) 0 -> n-1 for i in range(10): print(i) #2. range(m,n) m -> n-1 for i in range(1,10): print(i) # 3. range(m,n,q) m -> n-1 每q个取一个 for i in range(1,10,3): print(i) for i in range(100, 90, -1): print(i) # 0 1 2 3 4 5 lst = ["砂锅", "馒头", "盖浇饭", "刀削面", "大麻花", "大煎饼"] # 获取到列表的索引. 拿到索引之后. 可以拿到元素 for i in range(len(lst)): print(i) # i就是lst的索引 print(lst[i]) for el in lst: print(el)