04列表、元组、range模块
一、列表
-
什么是列表
- 列表可以承载任意类型的数据,可以存储海量的数据
- 列表时python常用的容器型数据类型
- 列表是有序的,支持索引,支持切片
-
创建一个列表
#定义一个空列表 li=[] #定义一个有值的列表 li=[100,200,'python',True,[1,2,3]] -
列表的索引、切片、步长。列表中取出的数据类型不变
li=[100,'python',True,[1,2,3]] #索引 print(li[0],type(li[0])) print(li[1],type(li[1])) print(li[-1],type(li[-1])) # 结果如下100 <class 'int'> 100 <class 'int'> python <class 'str'> [1, 2, 3] <class 'list'> #切片\步长(顾头不顾尾) print(li[:2:2]) # 结果如下: [100] -
练习
li = [1, 3, 2, "a", 4, "b", 5,"c"] # 通过对li列表的切片形成新的列表l1,l1 = [1,3,2] # 通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"] # 通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"] # 通过对li列表的切片形成新的列表l6,l6 = ["b","a",3] # 答案 l1=li[:3] l2=li[3:6] l4=li[1:6:2] l6=li[-3:0:-2] -
列表的增删改查
-
增
- append(‘str'):在列表最后面增加元素,没有返回值。
- insert(index,‘str’):在指定位置插入一个元素,没有返回值
- extend(”abcd“):在最后一次添加a,b,c,d四个元素。迭代追加组成对象的最小元素。字符串最小元素是每个字符,列表自小元素就是列表中的每个单位。
-
删
- 按照索引位置进行删除
- pop(
):默认删除最后一个元素,也可以删除index所在位置的元素,并返回删除的元素
- pop(
- 按照指定元素进行删除
- remove(“element”):删除列表中某个元素,默认删除列表中匹配到的第一个元素。
- clear():清空列表中的所有元素
- del 删除
- 按照索引进行删除
- del list[-1]
- 按照切片、步长进行删除
- del list[::2]
- 按照索引进行删除
- 按照索引位置进行删除
-
改
- 按照索引位置进行修改
- li[0]='new_element':直接把下标为0的元素修改成“new_elenment"
- 按照切片进行修改(原数据的个数和现在的个数数量可以不一样)
- li[:2]="abcd":把前三个元素修改成a,b,c,d。原来的第四个元素索引位置顺序向后移动。
- 按照步长修改(原数据的个数和现在的个数数量要相同)
- li[:3:2]='ab':把索引位置为0、2的元素修改为a,b
- 按照索引位置进行修改
-
查
- 列表是可迭代的,可以for进行遍历
-
其他用法
-
reverse():对列表进行反转
#对l1列表进行反转并输出 l1=[1,2,3,4,5] l2=l1[::-1] l1=l2 print(l1) #结果为: [5,4,3,2,1] #可以直接用reverse方法直接实现 l1=[1,2,3,4,5] l1.reverse() print(l1) #结果为: [5,4,3,2,1]
-
-
练习(有列表嵌套)
l1 = [1, 2, 'taibai', [1, 'alex', 3]] ''' 1、将l1中的’taibai‘变成大写并放回原处 2、给小列表[1,'alex',3]追加一个元素,’老男孩教育‘ 3、给列表中的’alex'通过字符串拼接的方式在列表中变成'alexsb' ''' ##答案 l1[2]=l1[2].upper() l1[3].append('老男孩教育') l1[3][1]=l1[3][1]+'sb' #l1[-1][1] += 'sb' print(l1) [1, 2, 'TAIBAI', [1, 'alexsb', 3, '老男孩教育']]
-
-
列表的嵌套
- 列表中包含着列表。
-
练习题
lis = [2, 30, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] # 将列表lis中的"tt"变成大写。 # 将列表中的数字3变成字符串"100"。 # 将列表中的字符串"1"变成数字101。 lis[3][2][1][0]=lis[3][2][1][0].upper() lis[3][2][1][1]='100' lis[3][2][1][2]=101
二、元组
-
元组
-
元组是只读列表
-
可以存大量数据,支持索引、切片查看
-
列表用[]表示,元组用()表示
-
列表中可以只有一个元素,元组中如果只有一个元素,后面必须要加上一个","。
-
元组中的列表可以进行增删改查操作,但是不能删除元组中的整个列表
tup1=(1) tup2=(1,) print(tup1,type(tup1)) print(tup2,type(tup2)) 1 <class 'int'> (1,) <class 'tuple'> -
-
应用的地方
-
可以存放重要数据。因为元组不可修改,所以可以用来存放:用户名、密码、个人信息等,一些不想让别人修改的东西
-
元组的拆包。可以分别赋值。
c = (1,2) #拆包的时候,等号两边的数值个数要一一对应。会把等号右边元组中的值,一一对应的赋值给等号左边的变量 a,b=c print(a,b) # 结果为: 1 2
-
三、range
-
range
-
生成指定范围内的数字
-
range也是顾头不顾尾
-
可以指定起始值,终止值,步长
-
range大部分与for结合使用
#打印1到10,步长为2 for i in range(1,11,2): print(i) # 结果如下: 1 3 5 7 9 #也可以倒序打印1-10 for i in range(10,0,-1): print(i) 10 9 8 7 6 5 4 3 2 1
-
-
练习
l1=[1,2,3,'python','学习'] # 利用for虚幻,利用range将l1的所有索引依次打印出来 for i in range(len(l1)): print(i,l1[i]) # 结果如下: 0 1 1 2 2 3 3 python 4 学习
四、总结练习
"""
14.有如下列表(选做题)
li = [1, 3, 4, "alex", [3, 7, 8, "BaoYuan"], 5, "RiTiAn"]
循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
我想要的结果是:
1
3
4
alex
3
7
8
baoyuan
5
ritian
"""
li = [1, 3, 4, "alex", [3, 7, 8, "BaoYuan"], 5, "RiTiAn"]
for i in li:
if type(i) == list:
for j in i:
if type(j) == str:
j=j.lower()
print(j)
else:
print(j)
elif type(i) == str:
i=i.lower()
print(i)
else:
13.开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
敏感词列表 li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
则将用户输入的内容中的敏感词汇替换成等长度的*(苍老师就替换***),
并添加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。
"""
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
new_list=[]
while True:
get_str=input("请输入评论,或者输入'q'退出程序:")
if get_str.lower() == 'q':
break
for i in li:
if i in get_str:
get_str=get_str.replace(i,len(i)*"*")
new_list.append(get_str)
print(new_list)
"""
# 查找列表li中的元素,移除每个元素的空格,并找出以"A"或者"a"开头,
# 并以"c"结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表。
# li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
# """
new_li=[]
li = ["TaiBai ", "alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"]
for i in li:
string=i.replace(" ","")
if string[0].upper()== "A" and string[-1] == "c":
new_li.append(string)
print(new_li)
"""
11.利用for循环和range,将1-30的数字依次添加到一个列表中,
并循环这个列表,将能被3整除的数改成*。
"""
li=[]
for i in range(1,31):
li.append(i)
for index,value in enumerate(li):
if li[index] % 3 == 0:
li[index]='*'
print(li)
"""
利用for循环和range打印100~10,倒序将所有的偶数添加到一个新列表中,
然后在对列表的元素进行筛选,将能被4整除的数留下来。
"""
li=[]
li_4=[]
for i in range(100,9,-1):
if i % 2 == 0:
li.append(i)
if i % 4 == 0:
li_4.append(i)
print(li,"\n",li_4)
本文来自博客园,作者:majic_jie,转载请注明原文链接:https://www.cnblogs.com/majic-jie/p/14466385.html

浙公网安备 33010602011771号