一、列表
列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:
li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
增:
1 s = ['alex','wusir','taibai'] 2 # append 追加 3 s.append('henry') 4 # insert 插入 5 s.insert(1,'henry') 6 # extend 迭代追加 7 s.extend('henry') 8 s.extend(['oldboy','girl'])
删:
1 s = ['alex','wusir','taibai',10,11] 2 pop 按照索引删除,会将删除的元素作为返回值(默认删除最后一个) 3 s.pop(1) 4 remove 按照元素删除 5 s.remove('wusir') 6 clear 清空列表 7 s.clear() 8 del 9 按照索引删除 10 del s[1] 11 按照切片删除 12 del s[1:2] 13 删除整个列表 14 del s
改:
1 s = ['alex','wusir','taibai',10,11] 2 切片改 3 s[:1] = 'asdf' 4 切片加步长改 必须一一对应 5 s[::2] = ['a','b','c']
查:
1 按照索引 按照切片 加步长查询 2 for 循环查询 3 s = ['alex','wusir','taibai',10,11]print(s)
列表的其他操作:
1 获取列表的长度 len() 2 计算某个元素出现的次数 conut 3 通过元素查找索引,找到第一个就返回,找不到就报错 4 从小到大排序sort(reverse = False) 当reverse = True时从大到小 5 反转用 reverse 6 查找某个元素的索引用 index 找到第一个就返回,找不到报错
作业:
1.请⽤代码实现: li = ["alex", "wusir", "taibai"] 利⽤下划线将列表的每⼀个元素拼接成字符串"alex_wusir_taibai" 2.利⽤for循环和range打印出下⾯列表的索引。 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 3.利⽤for循环和range找出100以内所有的偶数并将这些偶数插⼊到⼀个新列表中。 4.利⽤for循环和range 找出50以内能被3整除的数,并将这些数插⼊到⼀个新列表中。 5.利⽤for循环和range从100~1,倒序打印。 6.利⽤for循环和range从100~10,倒序将所有的偶数添加到⼀个新列表中,然后对列 表的元素进⾏筛选,将能被4整除的数留下来。 7.利⽤for循环和range,将1-30的数字⼀次添加到⼀个列表中,并循环这个列表,将 能被3整除的数改成*。 8.查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾 的所有元素,并添加到⼀个新列表中,后循环打印这个新列表。 li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] 9.开发敏感词语过滤程序,提示⽤户输⼊评论内容,如果⽤户输⼊的内容中包含特殊的 字符: 敏感词列表 li = ["苍⽼师", "东京热", "武藤兰", "波多野结⾐"] 则将⽤户输⼊的内容中的敏感词汇替换成等⻓度的*(苍⽼师就替换***),并添加到⼀ 个列表中;如果⽤户输⼊的内容没有敏感词汇,则直接添加到上述的列表中。
答案:
第一题 li = ["alex", "wusir", "taibai"] up = '_'.join(li) print(up) 第二题 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] for i in range(len(li)): print(i,li[i]) 第三题 lis1 = [] for i in range(2,100,2): # print(i) lis1.append(i) print(lis1) 第四题 lis2 = [] for i in range(50): if i % 3 == 0: lis2.append(i) print(lis2) 第五题 for i in range(100,0,-1): print(i) 第六题 lis3 = [] for i in range(100,11,-1): if i % 2 == 0: lis3.append(i) for v in lis3: if v % 4 != 0: lis3.remove(v) print(lis3) 第七题 lis4 = [] for i in range(1,31): lis4.append(i) for v in lis4: if v % 3 == 0: lis4[v-1] = '*' print(lis4) 第八题 lis = [] li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] for i in li: i = i.strip() if i.startswith('A') and i.endswith('c'): lis.append(i) elif i.startswith('a') and i.endswith('c'): lis.append(i) for v in lis: print(v) 第九题 li = ['苍老师','武藤兰','波多野结衣','东京热'] flag = [] comment = input('请输入') for name in li: if name in comment: comment = comment.replace(name,len(name)*'*') flag.append(comment) print(flag)
重点:
1 """ 2 利⽤f or循环和range从100~10,倒序将所有的偶数添加到⼀个新列表中,然后对列 3 表的元素进⾏筛选,将能被4整除的数留下来。 4 """ 5 6 lst = [] 7 for x in range(100,9,-1): 8 if x % 2 == 0: 9 lst.append(x) 10 # 使用del完成 11 # 从前往后遍历列表,如果删除列表中的元素,会有漏删元素的风险。 12 # 解决方案:从后往前遍历 13 index = len(lst) - 1 14 while index >= 0: 15 if lst[index] % 4 != 0: 16 del lst[index] 17 index -= 1 18 print(lst)