python -- 基本数据类型/list列表的操作/元组/range
主要内容
1. list(增删改查)
列表可以装大量的数据. 不限制数据类型.
表示方式: [] 方括号中的每一项用逗号隔开
2.列表和字符串一样. 也有索引和切片,索引也是从0开始
3.切片
lst[0:3] #截取从索引0-3的元素,但是只截取到索引为2的数据
lst[ :3] #从头取到第2个元素(索引为3)
lst[1: : 2] #从索引为1开始取到最后一个,步长为2,表示每2个取一个,也就是隔一个取一个
lst[2: : -1] # 从索引为2开始取,取到最后,步长-1,表示从右向左倒着取.,每一个取一个
4.功能:
1). 增:
append() 末尾添加
insert(索引,添加内容) 指定索引位置添加
extend() 迭代添加,元素一个个添加
#append 默认添加到列表末尾 lst = ["周杰伦", "王力宏", "周润发"] lst.append("伍佰") # 向列表中添加一个元素, 元素放在末尾. 把一个元素追加到列表的末尾 print(lst)
#insert 添加到指定位置 lst.insert(1, "马化腾") # 把元素插入到指定位置(索引为1位置). 元素的移动
#extend 迭代添加 lst.extend(["马云", "王健林", "李嘉诚"]) # 迭代添加 结果是['周杰伦', '王力宏', '周润发', '马云', '王健林', '李嘉诚']
lst.extend("马云") #结果是['周杰伦', '王力宏', '周润发', '马', '云']
2.) 删:
lst[] 空列表
pop() 删除最后一个
pop(索引) 删除索引所在元素
remove(元素) 删除指定的元素, 如果元素存在,执行删除. 如果元素不存在,程序则会报错!!
clear() 将整个列表清空,最终列表成为一个空列表.
del lst[起始位置:结束位置] 将原列表中1-3的元素去掉
# pop() 删除 lst = ["盖伦", "大白梨", "提莫", "大白梨"] e = lst.pop() # 返回删除的元素, 默认删除最后一个 print(e) #大白梨 print(lst) # ['盖伦', '大白梨', '提莫'] e = lst.pop(1) # 根据给出的索引进行删除 print(e) #删除第一个大白梨 print(lst) # ['盖伦', '提莫']
#remove 删除指定的元素,从左往右删第一个 lst = ["盖伦", "大白梨", "提莫", "大白梨"] lst.remove("大白梨") #默认删除第一个大白梨 print(lst) #['盖伦', '提莫', '大白梨']
#remove 删除元素不存在,报错 lst = ["盖伦", "大白梨", "提莫", "大白梨"] lst.remove("大白梨") #默认删除第一个大白梨 print(lst) #['盖伦', '提莫', '大白梨']
#clear 清空列表 lst = ["盖伦", "大白梨", "提莫", "大白梨"] lst.clear() #清空列表 print(lst) #[]
#del lst[start:end] lst = ["盖伦", "大白梨", "提莫", "大白梨"] del lst[1:] #从索引为1的位置开始删除到末尾 print(lst) #['盖伦']
3). 改:
索引修改,
切片修改
# 索引修改 lst = ["太白", "五色", "银王", "日天"] lst[0] = "太黑" print(lst) #['太黑', '五色', '银王', '日天'] lst[2] = "银角大王" print(lst) #['太黑', '五色', '银角大王', '日天']
# 切片修改 lst = ["太白", "五色", "银王", "日天"] lst[1:3] = "马化腾" # 迭代修改 print(lst) #['太白', '马', '化', '腾', '日天'] lst[1:3] = ["周杰伦", "他媳妇", "王力宏媳妇"] print(lst) #['太白', '周杰伦', '他媳妇', '王力宏媳妇', '腾', '日天']
4)查询: for循环
# 查询 for循环 lst = ["舒克贝塔", "黑猫警长", "熊大熊二", "葫芦娃", "吴佩琪"] for el in lst: # element 遍历列表元素 print(el) '''结果是: 舒克贝塔 黑猫警长 熊大熊二 葫芦娃 吴佩琪 '''
5.常用方法:
1. len() 列表长度
2. count() 元素出现次数
3. sort() 排序
lst = ["王尼玛", "我记着你", "伟哥", "放学天台见","王尼玛", "王尼玛"] print(len(lst)) #计算列表长度 6 print(lst.count("王尼玛")) #计数 元素出现的次数 3
#排序 lst = [1, 9, 18, 2 , 34, 88, 7, 9] lst.sort() # 升序[1, 2, 7, 9, 9, 18, 34, 88] print(lst) lst.sort(reverse=True) # 倒序[88, 34, 18, 9, 9, 7, 2, 1] print(lst)
6. list的嵌套
降维操作
lst = [1, "太白", "wusir", ["麻花疼", ["可口可乐"], "王剑林"]] print(lst[3][1][0]) #可口可乐 lst[3][1].append("芬达") #[1, '太白', 'wusir', ['麻花疼', ['可口可乐', '芬达'], '王剑林']] print(lst) lst[2] = lst[2].capitalize() #[1, '太白', 'Wusir', ['麻花疼', ['可口可乐', '芬达'], '王剑林']] print(lst) lst[1] = lst[1].replace("白", "黑") #[1, '太黑', 'Wusir', ['麻花疼', ['可口可乐', '芬达'], '王剑林']] print(lst)
7. tuple 元组
不可变的列表. 只读列表. 有索引和切片.
不可变的是它内部(第一层)子元素. 如果子元素是列表. 列表中的元素是可以变的.
lit = (1, "花生", "山药") #元组的类型 print(type(lit)) #<class 'tuple'>
tu = (1, ) # 表示元组,还需要添加一个逗号 print(type(tu)) #<class 'tuple'> tu = ('DNF', "LOL", "CF", "斗地主", "消消乐") print(tu[2:]) #('CF', '斗地主', '消消乐') tu[2] = "王者荣耀" # 尝试着修改 不能改, 会报错
#元组的遍历 tu = ('DNF', "LOL", "CF", "斗地主", "消消乐") for el in tu: #元组的遍历 print(el) ''' DNF LOL CF 斗地主 消消乐 '''
#元组的子元素(第一层元素)不能修改 tu = (1, "马化腾", ["胡辣汤", "疙瘩汤", "西红柿鸡蛋汤"]) tu[2].append("粘包米") # 元组本身没有变. 变的是子元素中的内容 print(tu) #(1, '马化腾', ['胡辣汤', '疙瘩汤', '西红柿鸡蛋汤', '粘包米'])
#元组的查询,根据索引 tu = ("王昭君", "小泽老师", "夏川美里", "斯琴高娃", ("邱老师",("刀削面", "炒饼", "盖浇饭"), "刘德华", "周星星", "渣渣辉")) print(tu[4][1][2]) #盖浇饭
8. range()
数数
有一个参数: 结束为止,小于参数就结束
两个参数: 1. 起始位置, 2.结束位置
三个参数: 1. 起始位置, 2. 结束位置. 3.步长
for i in range(10): # 从0开始. 到10结束,小于10 print(i) #0 1 2 3 4 5 6 7 8 9
for i in range(3, 7): # 从3 开始. 打印到7结束. 不能到7 print(i) #3 4 5 6
for i in range(3, 10, 2): # 从3 到 10 每2个取一个,也就是隔着一个数取出来一个 print(i) #3 5 7 9
for i in range(10, -10, -1): #从10 开始到-10结束. 倒着数 ,每1个取一个,也就是不隔间隙的取 print(i) #10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 -6 -7 -8 -9