# ## 1. 写代码,有如下列表,按照要求实现每一个功能
# li = ["alex","WuSir","ritian","barry","wenzhou"]
# # 1) 计算列表的长度并输出
# print(len(li))
# # 2) 列表中追加元素"seven",并输出添加后的列表
# li.append("seven")
# print(li)
# # 3)请在列表的第1个位置插入元素"Tony",并输出添加后的列表
# li.insert(0,"Tony")
# print(li)
# # 4) 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
# li[1]="Kelly"
# print(li)
# # 5) 请将列表 l2=[1,"a",3,4,"heart"]的每一个元素添加到列表 li 中,一行代码实现,不允许循环添加。
# li.extend([1,"a",3,4,"heart"])
# print(li)
# # 6) 请将字符串 s = "qwert" 的每一个元素添加到列表 li 中,一行代码实现,水允许循环添加
# li.extend("qwert")
# print(li)
# # 7) 请删除列表中的元素"alex",并输出添加后的列表
# li = ["alex","WuSir","ritian","barry","wenzhou"]
# li.remove("alex")
# print(li)
# # 8) 请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
# li = ["alex","WuSir","ritian","barry","wenzhou"]
# removed_element = li.pop(1)
# print(removed_element)
# print(li)
# # 9) 请删除列表中的第2个至第4个元素,并输出删除元素后的列表
# li = ["alex","WuSir","ritian","barry","wenzhou"]
# del li[1:4]
# print(li)
# # 10) 请将列表所有的元素反转,并输出反转后的列表
# li = ["alex","WuSir","ritian","barry","wenzhou"]
# li.reverse()
# print(li)
# # 11) 请计算出"alex"元素在列表 li 中出现的次数,并输出该次数
# li = ["alex","WuSir","ritian","barry","wenzhou"]
# print(li.count("alex"))
#
# # 2. 写代码,有如下列表,利用切片实现每一个功能
# li = [1, 3, 2, "a", 4, "b", 5,"c"]
# # 1) 通过对li列表的切片形成新的列表l1, l1 = [1,3,2]
# l1 = li[0:3]
# print(l1)
# # 2) 通过对li列表切片形成新列表l2,l2 = ["a",4,"b"]
# l2 = li[3:6]
# print(l2)
# # 3) 通过对li列表的切片形成新列表l3, l3 = [1,2,4,5]
# l3 = li[::2]
# print(l3)
# # 4) 通过对li列表的切片形成新的列表l4, l4 = [3,"a","b"]
# l4 = li[1:-2:2]
# print(l4)
# # 5) 通过对li列表的切片形成新的列表l5, l5 = ["c"]
# l5 = li[-1:]
# print(l5)
# # 6) 通过对li列表的切片形成新的列表l6, l6 = ["b","a",3]
# l6 = li[-3:0:-2]
# print(l6)
# 3.写代码,有如下列表,按照要求实现每一个功能。
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# 1)将列表 list 中的 "tt" 变成大写(用两种方式)
# 方法一:
# lis[3][2][1][0] = lis[3][2][1][0].upper()
# print(lis)
# print( type( lis[3][2][1][0]))
# 方法二:
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# del lis[3][2][1][0]
# lis[3][2][1].insert(0,"TT")
# print(lis)
# # 2) 将列表中的数字3变成字符串"100"(用两种方式)。
# # 方法一:
# lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# lis[1] = '100'
# lis[3][2][1][1] = '100'
# print(lis)
#
# # 方法二:
# lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# lis[1] = str(lis[1]+97)
# lis[3][2][1][1] = str( lis[3][2][1][1] + 97 )
# print(lis)
#
# # 3) 将列表中的字符串"1"变成数字101(用两种方式)
# lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# lis[3][2][1][2] = 101
# print(lis)
# lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# lis[3][2][1][2] = int( lis[3][2][1][2] + "01" )
# print(lis)
# print( isinstance(lis,list ))
# 4。 请用代码实现:
'''
li = ["alex", "eric", "rain"]
利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"
'''
# ret = "_".join( ["alex", "eric", "rain"] )
# print(ret)
# 5 利用 for 循环 和 range 打印出下面列表的索引
# li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
# li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
# count = 0
# for i in li:
# print(str(count) + " ---> " , i)
# count += 1
# print("分隔线".center(100,'*'))
# li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
# for i in range(len(li)):
# print(i," ----> ",li[i])
# 6, 利用 for 循环 和 range 找出 100 以内所有的偶数并这些偶数插入到一个新列表中。
# new_list = []
# for item in range(101):
# if item % 2 == 0:
# new_list.append(item)
# print(new_list)
# 7 利用 for 循环 和 range 找到 50 以内能被3 整除的数,并将这些数插入到一个新列表中
# target_list = []
# for num in range(51):
# if num % 3 == 0:
# target_list.append(num)
# print(target_list)
# 8. 利用 for 循环和 range 从 100~1 ,倒序打印。
# for i in range(100,0,-1):
# print(i)
#
'''
9,利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,
然后对列表的元素进行筛选,将能被4整除的数留下来。
'''
# num_list = []
# for i in range(100,9,-1):
# if i % 2 == 0 and i % 4 == 0:
# num_list.append(i)
# print(num_list)
# 10
'''
10,利用for循环和range,将1-30的数字一次添加到一个列表中,
并循环这个列表,将能被3整除的数改成*。
'''
# list2 = []
# for i in range(1,31):
# if i % 3 == 0:
# list2.append("*")
# else:
# list2.append(i)
# print(list2)
##3 改进版本
list2 = []
for i in range(1,30):
list2.append(i)
for index in range(len(list2)):
if list2[index] % 3 == 0:
list2[index] = "*"
print(list2)
# 11题:
'''
查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,
并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
'''
# li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
# dest_list = []
# for element in li :
# tmp = element.strip(" ")
# if tmp.capitalize().startswith('A') and tmp.endswith('c'):
# dest_list.append(tmp)
# print(dest_list)
# 12 题:
'''
12,开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
'''
# comment_list = []
# li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
# while 1:
# comment = input("请输入你的评论内容,输入 Q/q 离开评论区>>>")
# if comment.lower() == "q":
# print("离开评论区")
# break
# tmp_comment = comment
# for item in li:
# length = len(item)
# fill_chars = "*" * length
# if item in comment:
# tmp_comment = tmp_comment.replace(item,fill_chars)
# comment_list.append(tmp_comment)
# print(comment_list)
### 改进版
# comment_list = []
# li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
# while 1:
# comment = input("请输入你的评论内容,输入 Q/q 离开评论区>>>")
# if comment.lower() == "q":
# print("离开评论区")
# break
# tmp_comment = comment
# for item in li:
# length = len(item)
# fill_chars = "*" * length
# tmp_comment = tmp_comment.replace(item,fill_chars) # 前面不用if判断,因为replace(),存在就替换,不存在返回原字符串
# comment_list.append(tmp_comment)
# print(comment_list)
# 13题:
'''
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 child in li:
# if isinstance(child,list):
# for i in child:
# print(str(i).lower())
# else:
# print(str(child).lower())
####### 方法二 #########################################
# li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
# for child in li:
# if type(child) == list:
# for grandChild in child:
# print(str(grandChild).lower())
# else:
# print(str(child).lower())