4.列表和元组作业
1,写代码,有如下列表,按照要求实现每一个功能
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
1)计算列表的长度并输出
2)列表中追加元素"seven",并输出添加后的列表
3)请在列表的第1个位置插入元素"Tony",并输出添加后的列表
4)请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
5)请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
6)请将字符串串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
9)请删除列表中的第2⾄至4个元素,并输出删除元素后的列表
10)请将列列表所有得元素反转,并输出反转后的列表
11)请计算出"alex"元素在列表li中出现的次数,并输出该次数。
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] print(len(li)) li.append("seven") print(li) li.insert(1,"Tony") print(li) li[1]="Kelly" print(li) l2=[1,"a",3,4,"heart"] li.extend(l2) print(li) s = "qwert" li.extend(s) print(li) print(li.pop(1)) print(li) del li[1:4] print(li) li.reverse() print(li) print(li.count("alex"))
2,写代码,有如下列表,利用切片实现每一个功能
li = [1, 3, 2, "a", 4, "b", 5,"c"]
1)通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
2)通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
3)通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
4)通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
5)通过对li列表的切片形成新的列表l5,l5 = ["c"]
6)通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
li = [1, 3, 2, "a", 4, "b", 5,"c"] print(li[:3]) print(li[3:6]) print(li[::2]) print(li[1:6:2]) print(li[-1::]) print(li[-3::-2])
3,写代码,有如下列表,按照要求实现每一个功能。
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
1)将列表lis中的"tt"变成大写(用两种方式)。
2)将列表中的数字3变成字符串"100"(用两种方式)。
3)将列表中的字符串"1"变成数字101(用两种方式)。
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] #1)将列表lis中的"tt"变成⼤写(⽤两种⽅式)。 lis[3][2][1][0] = lis[3][2][1][0].upper() lis[3][2][1][0] = lis[3][2][1][0].replace("t", "T") lis[3][2][1][0] = "TT" lis[3][2][1][0] = lis[3][2][1][0].swapcase() #2)将列表中的数字3变成字符串"100"(⽤两种⽅式)。 lis[3][2][1][1] = "100" lis[3][2][1][1] = str(lis[3][2][1][1] + 97) lis[1] = str(lis[1] + 97) #3)将列表中的字符串"1"变成数字101(⽤两种⽅式)。 lis[3][2][1][2] = 101 lis[3][2][1][2] = int(lis[3][2][1][2]) + 100) lis[3][2][1][2] = int(lis[3][2][1][2] + "01")
4,请用代码实现:
li = ["alex", "eric", "rain"] 利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"
li = ["alex", "eric", "rain"] # alex_eric_rain 1+2+3+4 s = "" for item in li: # item 列表中的每一个名字 s += item + "_" # "alex_eric_rain_" s = s[:-1] print(s)
5.利用for循环和range打印出下面列表的索引。
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] for i in range(len(li)): print(i)
6.利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。
lst = [] for i in range(100): if i % 2 == 0: lst.append(i) print(lst)
7.利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中。
lst = [] for i in range(50): if i % 3 == 0: lst.append(i) print(lst)
8.利用for循环和range从100~1,倒序打印。
for i in range(100, 0, -1): print(i)
9.利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。
lst = [] for i in range(100, 9, -2): if i % 4 == 0: lst.append(i) print(lst)
10,利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成*。
lst = [] for i in range(1, 31): lst.append(i) for i in range(len(lst)): if lst[i] % 3 == 0: lst[i] = "*" # 修改成* print(lst)
11,查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并 以"c"结尾的所有元素,并添加到一个新列表中,后循环打印这个新列表。
li = ["TaiBai ", “ale xC", “AbC ", "egon", " ri TiAn", "WuSir", " aqc"]
li = ["TaiBai ", "ale xC", "Abc ", "egon", " ri TiAn", "WuSir", " aqc"] lst = [] for item in li: # 去空格 content = item.replace(" ", "") if (content.upper().startswith("A")) and content.endswith("c"): lst.append(content) print(lst)
12,开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中 包含特殊的字符:
敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"] 则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添 加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
li = ["苍老师", "东京热", "武藤兰", "波多野结衣", "sb","dsb"] concent = input("输入评论").strip() for i in li: # i是每一个敏感词 if i in concent: #判断是否包含敏感词 concent = concent.replace(i,"*"*len(i)) #替换敏感词为* print(concent)
13,有如下列表
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。 我想要的结果是:
1
3
4
alex
3
7
8
taibai
5
ritian
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] for el in li: # 获取到第一层内容 if type(el) == list: # 判断元素是否是xxx数据类型 for item in el: # 循环内层列表 print(str(item).lower()) else: print(str(el).lower())
14. 把班级学生数学考试成绩录入到一个列表中: 并求平均值要求: 录入的时候要带着人名录入,
例如: 张三_44
names = [] sum=0 while 1: conter = input("请输入姓名_分数") if conter.upper() == "Q": break else: names.append(conter) for i in names: s = i.split("_") sum += int(s[1]) print(sum / len(names))
15. 敲七游戏. 从0开始数. 遇到7或者7的倍数要在桌上敲一下. 编程来完成敲
s = [] conter = input("请输入数字:") for i in range(1,int(conter)): if i % 7 == 0 or str(7) in i: i = "咣" s.append(i) else: s.append(i) print(s)
16. (升级题) 编写程序. 完成心动女生的筛选. (升级题)
首先. 程序会提示用户录入10位心仪女生的姓名. 然后把10位女生的名 字和序号展示出来. 由用户选择⼼心动女生. 此时用户可以选择3个心动女⽣生. 把用 户选中的三个心动女生的名字打印出来. 供用户继续选择. 这一次选择.只能选 择一名女生. 然后输出用户的心动女生是xxx 运行效果:
chuxuan_lst = [] for i in range(10): name = input("请输入你的心动女生(还可以输入%s个):" % (10 - i)) chuxuan_lst.append(name) # ['刘嘉玲', '林志玲', '安安', '小茹', '晓雪', '强哥', '胡辣汤', '宝宝', '萌萌', '磊磊'] print("您现在的心动女生有:") for i in range(len(chuxuan_lst)): print(i + 1, chuxuan_lst[i]) # 显示10个女生 # 从10个里面选择三个 fuxuan_list = [] for i in range(3): bh = input("请输入你要选择的三个女生(还剩下%s个)" % (3-i)) # 编号还原回索引 index = int(bh) - 1 fuxuan_list.append(chuxuan_lst[index]) print("您现在经过初选之后剩下的心动女生:") for i in range(len(fuxuan_list)): print(i + 1, fuxuan_list[i]) bh = input("请从这三个女生中选择一个你最喜欢的:") index = int(bh) - 1 print("您最终喜欢的女生是%s" % (fuxuan_list[index]))