列表、元组、range
1、for循环套for循环:
for i in "abc":
for x in "egf:
print(x)
结果是:e
g
f
e
g
f
e
g
f
2、99乘法表:
for m in range(1,10):
for n in range(1,m+1):
print('%s×%s=%s'%(m,n,m*n),end=' ')
print()
结果如下:
1×1=1
2×1=2 2×2=4
3×1=3 3×2=6 3×3=9
4×1=4 4×2=8 4×3=12 4×4=16
5×1=5 5×2=10 5×3=15 5×4=20 5×5=25
6×1=6 6×2=12 6×3=18 6×4=24 6×5=30 6×6=36
7×1=7 7×2=14 7×3=21 7×4=28 7×5=35 7×6=42 7×7=49
8×1=8 8×2=16 8×3=24 8×4=32 8×5=40 8×6=48 8×7=56 8×8=64
9×1=9 9×2=18 9×3=27 9×4=36 9×5=45 9×6=54 9×7=63 9×8=72 9×9=81
3、列表--Python中数据结构之一
lst = [1,"alex"] 每个元素用逗号分隔
列表的作用(容器):存储大量数据、存储不同数据类型的数据、每一个内容是一个元素。
4、append在末尾追加:
lst = ["python学习手册","核心编程"]
print(lst.append("流畅的python") #这是打印往书包里面增加书的动作
print(lst) #打印书包
5、图解如下:
6、insert插入:参数1是要插入位置的下标、参数2是要插入的内容、尽量少使用insert、
7、extend()扩展(迭代添加)、不能添加整型数字
8、remove通过元素名删除、从左向右、一次只能删除一个。
9、pop默认删除列表中最后一个并且有返回值、返回的内容是被删除的元素、通过索引pop(1)进行删除、
10、clear清空
11、del删除整个列表、加索引:del li[1:3]
12、修改图解:
13、使用切片时、获取的内容就是切片的原数据本身。
14、切片获取的内容空间是连续的时候、修改时内容可以多可以少。
15、切片获取的内容空间是不连续的时候、修改时内容必须一一对应。
16、列表是可变数据类型、可迭代数据类型、有序的数据结构。
17、列表嵌套
18、元组就是一个不可变的列表。
19、元组是一个有序、可迭代、不可变数据类型。
20、元组的应用场景:为了防止误操作时修改数据、元组中存放一些重要数据。
21、配置文件中存储数据。
22、range()范围、使用步长添加位置。
作业题:
#23、写代码,有如下列表,按照要求实现每一个功能
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
# 计算列表的长度并输出
print(len(li))
for i in li:
print(i)
# 列表中追加元素"seven",并输出添加后的列表
a = li.append("seven")
print(li)
# 请在列表的第1个位置插入元素"Tony",并输出添加后的列表
li.insert(1,"Tony")
print(li)
# 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表
li[2] = "Kelly"
print(li)
# 请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
l2=[1,"a",3,4,"heart"]
li.extend(l2)
print(li)
print(li.extend(l2))
# 请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。
s = "qwert"
li.extend(s)
print(li)
# 请删除列表中的元素"ritian",并输出添加后的列表
li.remove("ritian")
print(li)
# 请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表
a = li.pop(1)
print(a)
print(li)
# 请删除列表中的第2至4个元素,并输出删除元素后的列表
del li[1:3]
print(li)
# 24、写代码,有如下列表,利用切片实现每一个功能
li = [1, 3, 2, "a", 4, "b", 5,"c"]
# 通过对li列表的切片形成新的列表l1,l1 = [1,3,2]
print(li[:3])
# 通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"]
print(li[3:6])
# 通过对li列表的切片形成新的列表l3,l3 = ["1,2,4,5]
print(li[::2])
# 通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]
print(li[1:7:2])
# 通过对li列表的切片形成新的列表l5,l5 = ["c"]
print(li[-1])
# 通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
print(li[-3::-2])
# 25、写代码,有如下列表,按照要求实现每一个功能。
lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# 将列表lis中的"tt"变成大写(用两种方式)。
lis[3][2][1][0] = "TT"
print(lis)
# 将列表中的数字3变成字符串"100"(用两种方式)。
#第一种方式:
lis[1] = str(100)
print(lis)
print(type(lis[1]))
#第二种方式:
# lis[2][2][1][1] = str(lis[2][2][1][1] + 97)
# 将列表中的字符串"1"变成数字101(用两种方式)。
lis[3][2][1][2] = 101
print(lis)
# 26、请用代码实现:
li = ["alex", "wusir", "taibai"]
# 利用下划线将列表的每一个元素拼接成字符串"alex_wusir_taibai"
print("_".join(li))
# 27、利用for循环和range打印出下面列表的索引。
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]
for i in range(len(li)):
print(i)
# 28、利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。
li = []
for i in range(101):
if i % 2 == 0:
li.append(i)
print(li)
# 29、利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中。
#第一种写法:
lis = []
for i in range(0,50):
if i % 3 == 0:
lis.append(i)
print(lis)
#第二种写法:
lst = []
for i in range(0,50,3):
lst.append(i)
print(lst)
# 30、利用for循环和range从100~1,倒序打印。
for i in range(100,0,-1):
print(i)
# 31、利用for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。
li1 = []
for i in range(100,9,-1):
if i % 2 == 0 and i % 4 == 0:
li1.append(i)
print(li1)
# 32、利用for循环和range,将1-30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成*。
lis = []
index = 0
for i in range(30):
lis.append(i)
for i in lis:
if i % 3 == 0:
lis[index] = "*"
index += 1
print(lis)
# 33、查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
#第一种写法先替换再添加:
lis = []
for j in li:
i = j.replace(" ","")
if (i.startswith("A") or i.startswith("a")) and i.endswith("c"):
lis.append(i)
print(lis)
#第二种写法先判断再去除空白添加:
for k in li:
if (k.strip().startswith("A") or k.strip().startswith("a")) and k.strip().endswith("c"):
lis.append(k.strip())
print(lis)
# 34、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:敏感词列表 li = ["老师苍", "东京比较热", "武兰", "波多"]、则将用户输入的内容中的敏感词汇替换成等长度的*(老师苍就替换***),并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
li = ["老师苍", "东京比较热", "武兰", "波多"]
lst = []
content = input("请输入内容:") #今天的东京比较热老师苍就去找波多一起打武兰
for i in li:
if i in content:
content = content.replace(i,len(i) * "**")
lst.append(content)
print(lst)
# 35、有如下列表(选做题)
li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]
# 循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
#第一种写法函数式:
def task(li):
for i in li:
if type(i) != list:
print(i)
else:
task(i)
task(li)
#第二种写法isinstance判断:
for x in li:
if isinstance(x, list):
for y in x:
print(y)
else:
print(x)
#第三种写法:range和len
for y in range(len(li)):
if isinstance(li[y], list):
for z in li[y]:
print(z)
else:
print(li[y])
#第四种写法:for循环和if判断式
for i in li:
if type(i) == list:
for j in i:
if type(j) == str:
j = j.lower()
print(j)
else:
if type(i) == str:
i = i.lower()
print(i) #print缩进去只打印字符串、不缩进去打印字符串和数字
# 我想要的结果是:
# 1
# 3
# 4
# alex
# 3
# 7
# 8
# taibai
# 5
# ritian
#36、for循环最外层默认打印可迭代的最后一个元素
# for i in "abc":
# pass
# print(i)