列表,元组,range
列表:格式[],内部用逗号隔开,对数据没有类型要求,列表可以增删改查,索引,切片.
列表需要定位元素的下标,才能用replace()方法,replace()的参数必须是字符串
索引和切片:
lst = ["天龙八部","西游记","红楼梦","银瓶煤"] print(lst[3]) print(lst(-3)] print(lst[1:4]) #切片,原来是什么类型,就得到什么类型 print(lst[-1::-2])
嵌套:
lst = [["张艺谋", "冯小刚", "陈凯歌"], ["李安", "王家卫", "王晶"], ["周杰伦",["abc", "alex_wusir", ["胡辣汤", "c"]], "风扇哥"]] lst[1][2]="小脚" lst[2][1][1]= lst[2][1][1].replace("_","$") print(lst)
增:
1.append() #末尾追加 直接再原内容上修改了 2.insert(索引,元素) #插入指定字符 3.extend["胡辣汤","五花肉","猪头肉","五花肉"] #把参数进行迭代.每一项添到列表末尾
lst = ["凡人的春天","诛仙","神墓"] lst.append("看见") lst.insert(1,"清体") lst.extend(["胡辣汤","猪蹄子","猪头肉","五花肉"])
删:
pop(index):删除列表元素,如果没找到索引报错.
list_1 = ["abc",145,True,["小明","小红",278,33.9],25.9] list_1.pop() # 默认不写参数是删除末尾元素 print(list_1) # 打印内容如下: ['abc', 145, True, ['小明', '小红', 278, 33.9]]
pop(索引,提示信息):根据索引删除列表元素,如果没有打印一条提示信息
list_1 = ["abc",145,True,["小明","小红",278,33.9],25.9] list_1.pop(1) # 根据索引删除元素,删除第一个索引元素 print(list_1) # 打印内容如下: ['abc', True, ['小明', '小红', 278, 33.9], 25.9]
注意pop()删除是有返回值的,可以用一个变量来接收被删除的数据
1.pop(index) #根据索引删除 2.remove(元素) #根据元素删除
lst = ["斗破苍穹","手机","耳机","手表","耳环"] lst.pop() #默认从后往前删除1个 lst.pop(下标) #按下标删除 del lst[::2] #用切片删除 remove(元素) #指定元素删除,元素不在报错 列表的第一层可以删,无法进入子层删
lst.clear() #清空
改:
lst[下标]=元素 #下标修改 ,要改的元素类型是int,用这个.
利⽤for循环和range,将1-30的数字⼀次添加到⼀个列表中,并循环这个列表,将能被3整除的数改成*。 s = [] for i in range(1,31): s.append(i) for a in range(len(s)): if s[a]%3==0: s[a]="*" #for循环中,用下标修改的情景-.-! print(s)
repalce() #列表不能直接使用此方法,需要先定位元素的下标,而且元素类型不能是int,而且此方法的old和new必须都是字符串类型
lst = ["苏秦","武大","五二","宝元","李诞","赤字"] lst[1:3]=["马哈通"] #通过下标修改 lst[1:5:2] = ["麻花藤","码云"] #切片,且步长非1,元素个数须跟切掉个数一致 lst[1] = lst[1].replace("武大","WUSIR") #replace参数只能是字符串类型
查:
for循环
列表的其他操作
1.count() #计数 2.sort(reverse = True) #反向排序 3.reverse() #翻转 4.len() #求长度
================================================================================================================
sorted 对所有可迭代的对象进行排序操作。
参数介绍: iterable -- 可迭代对象。 key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认) 返回值: 返回重新排序的列表。
filter() #函数, 用于过滤
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
参数1为函数,参数2为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回True 的元素放到一个新的可迭代对象地址中。
lst = ["张无忌","张三丰","胡辣汤"] a = filter(lambda a: "张" not in a,lst) print(list(a)) #返回的是个可迭代地址,所以加个list,提取出来
list(itable) #把可迭代对象里面的内容全部取出来,形成一个列表,参数必须是个可迭代对象的地址
元组:
空元组:(,) #小括号里有逗号就可以是元组
元组不可变,但是元组里的可变类型的元素(列表等)能改
================================================================================================================
range(参数1,参数2,参数3) #每隔(参数3)个位置取一个
fof i in range(10,20,3): print(i)
lst = ["周杰伦", "动画城", "大风车", "随便加", "宝宝", "孟孟", "萌萌", "孟萌"] for item in lst: #这样写只能拿到元素,获取不到索引 print(item) ======================== for i in range(len(lst)): #i 就是下标,lst[i]元素 print(i,lst[i])
range(3,6) 结果还是它自己
set()函数:
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。