1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python中关于列表和元祖的基础知识

python中关于列表和元祖的基础知识

时间:2022-04-14 12:44:36

相关推荐

python中关于列表和元祖的基础知识

一,列表

1)定义:

[]内以逗号分隔,按照索引,存放各种数据类型,每一个位置代表一个元素

2)特性:

1 可存放多个值2 按照从左到右的顺序定义列表元素,下标为零开始顺序访问,有序3可修改指定索引位置对应的值,是可变的,

3)列表的操作和字符串一样

1,切片是和字符串一样的

#例1lst=["猪八戒","孙悟空","唐僧","沙僧",["观音","如来","蓝灯","十八罗汉",["太上老君","太白金星","哪吒","木吒","金吒"]]]print(lst[3])print(lst[4][4][3])print(lst[4][4][2:5:2])print(lst[::-2])print(lst[::-1])#例2lst = ["华仔", '赫本', '赵四', "孙艺珍", '车太贤']print(lst[3][1]) # 索引拿到的是元素print(lst[-3])print(lst[1:3]) # 切片也一样print(lst[::-2]) # 反着切也OK

2.列表的增删改查

#_1新增lst = ["西红柿首富","无双", "影", "超能泰坦"]print(lst.append("123")) # 可变的数据类型 没有返回值# 追加。 添加到末尾(重点)lst.append("找到你")lst.append("鬼子来了")lst.append("前任4")print(lst)# 插入lst.insert(0, "建国大业") # 插入, 效率不高. 索引的变更lst.insert(2, "美国往事")迭代添加lst.extend("周杰伦") # ["周杰伦"][0]lst.extend(["倚天屠龙记", "乡村爱情"])print(lst)#_2删除lst = ["杰森斯坦森", "勒布朗詹姆斯", "尼古拉斯凯奇", "郭达森"]pop() 弹出一个, 默认弹出最后一个lst.pop()lst.pop(1) # 可以弹出指定位置的元素ret = lst.pop() # 返回值是被删除的元素ret = lst.pop(2)print(ret)remove # 移除 , 指定元素, 删除第一个lst.remove("勒布朗詹姆斯") #lst.remove("尼古拉斯凯奇")#切片删除del lst[2] # 类似popdel lst[2:] # 批量删除del lst[1:5:2] # 切片删除lst.clear() # 清空列表print(lst)#_3修改lst = ["周杰伦", "周笔畅", "周星驰", "周润发"]lst[1] = "周星星" # 指定索引去修改. (重点)lst[1:3] = "马虎疼" # 迭代修改lst[1:3] = ["马虎疼"]lst[::2] = ["马虎疼", "王健林"] # 当切片出来的内容步长如果不是1:元素的个数必须要匹配lst[::2] = "马云"print(lst)#_4查询lst = ["胡辣汤", "猪脚饭", "吱吱冒油的猪蹄子", "猪头肉"]food表示列表中的每一项for food in lst: # 列表可以使用for循环。 list是一个可迭代对象print(food)lst = [1, 2, 4, 21, 4, 2, 22, 123, 4, 68]lst.sort() # 排序. 从小到大. 升序lst.sort(reverse=True) # 倒序。 降序. 从大到小lst.reverse() # 翻过来print(lst)print(len(lst)) # 长度#_5列表的嵌套lst = [["葫芦娃", "黑猫警长","西游记"], ["武斗乾坤", "wahaha", "斗破苍穹", "盘龙"], ["三体", "明朝那些事儿"]]print(lst[1][0])print(lst[2][2][0])#_降维: 一层一层的找# 把wahaha中的a换成blst[1][1] = lst[1][1].replace("a", "b") # 多层嵌套的时候如果进行操作。 需要重新赋值。 原因是替换的内容是一个 字符串lst[1].insert(1, "大闹天宫") # 对于内部元素如果是可变的数据类型。 直接改就行了print(lst)

二,元组

定义: tuple表示 , 由()组成内部元素用逗号隔开特点:不可变 只读列表。 也有索引 和切片功能

t = ("周杰伦", "哇哈哈", "爽歪歪", "酸酸乳", "三鹿奶粉", "AD钙奶")print(t[1])print(t[1:5]) # 切片的结果是一个元组print(t[1:5:2])t[1] = "益力多" # TypeError: 'tuple' object does not support item assignment#元组的不可变. 元组的不可变指的是元组内部第一层元素的内存地址t = ("张无忌", "周芷若", "赵敏")t[0] = "胡辣汤"t = ("周润发", "周星驰", ["渣渣辉","古天绿","陈小春"])t[2].append("李嘉诚")print(t)lst1 = [] # 新列表lst2 = list() # 新列表print(lst1, lst2)t1 = () # 元祖t2 = tuple() # 元祖print(t1, t2)# 元组如果只有一个元素。必须加逗号t1 = (1, 3, 5, 7, 9,) # () 运算符 优先级lst = ["哈哈", ]print(t1)print(lst)

三,for循环用来查找列表中元素和索引

lst = ["语文", "数学", "英语", "代数", "体育", "生物", "生物第二学期"]for ke in lst: # 默认的for循环会忽略掉索引print(ke)

# 获取到元素的索引和元素-背下来

for i in range(len(lst)):# i #是索引# lst[i] #获取元素print(i, lst[i])s = "我今天下午要吃鸡"for i in range(len(s)):print(i, s[i])

四,练习

li=["alex","WuSer","ritian","wenzhou"]1)计算列表的长度并输出print(len(li))2)列表中追加元素"seven"并输出添加后的列表li.append("seven")print(li)3)请在列表的第1个位置插⼊元素"Tony",并输出添加后的列表li.insert(1,"Tony")print(li)4) 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表li[2]=" Kelly"print(li)5)请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加l2=[1,"a",3,4,"heart"]li.extend(l2[0:])print(li)print(li)6)请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不s="qwert"li.extend(s)print(li)7) 添加"eric"元素,并输出结果li.append("eric")print(li)8)请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表li.pop(2)print(li)9)请删除列表中的第2⾄4个元素,并输出删除元素后的列表del li[2:5]print(li)10)请将列表所有得元素反转,并输出反转后的列表li.reverse()print(li)11)请计算出"alex"元素在列表li中出现的次数,并输出该次数。count=0for i in li :if [i]==["alex"] :count +=1continueprint(count)

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[0::2]print(l3)# 4)通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"]l4=li[1:6:2]print(l4)# 5)通过对li列表的切片形成新的列表l5,l5 = ["c"]l5=[li[-1]]print(l5)# 6)通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]l6=li[-3::-2]print(l6)

3,写代码,有如下列表,按照要求实现每一个功能。

lis = [2, 5, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]1)将列表lis中的"tt"变成大写(用两种方式)。方式1lis[3][2][1][0]=lis[3][2][1][0].upper()print(lis)方式2lis[3][2][1][0]=lis[3][2][1][0].replace("tt","TT")print(lis)2)将列表中的数字3变成字符串"100"(用两种方式)。方式1lis[3][2][1][1] = "100"方式2lis[3][2][1][1] = str(lis[3][2][1][1] + 97)方式三lis[3][2][1][1] = str(lis[3][2][1][1]).replace("3", "100")3)将列表中的字符串"1"变成数字101(用两种方式)。方式1lis[3][2][1][2] = int(lis[3][2][1][2]+"01")方式2lis[3][2][1][2] = int(lis[3][2][1][2].replace("1", "101"))

4, 请用代码实现:

li = ["alex", "eric", "rain"] 利用下划线将列表的每一个元素拼接成字符串 "alex_eric_rain"#方法一li=["alex","eric","rain"]li[0:] =["alex_eric_rain"]print(li)#方法二li = ["alex", "eric", "rain"]s = ""for name in li:s += name+"_"print(s.strip("_"))print(s[:len(s)-1]) # 当我确定最后一个一定是_的时候#方法三print("_".join(li))

5.利用for循环和range打印出下面列表的索引。

li = ["alex", "WuSir", "ritian", "barry", "wenzhou"]for index in range(0,len(li)):print(index)

6.利⽤for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中。

ko=[]for i in range(0,100):if i%2==0:ko.append(i)print(ko)

7.利用for循环和range找出50以内能被3整除的数,并将这些数插入到一个新列表中。

ko=[]for i in range(0,50):if i%3 ==0:ko.append(i)print(ko)

8.利⽤for循环和range从100~1,倒序打印。

ko=[]for i in range(1,101):ko.append(i)print(ko[::-1])

9.利⽤for循环和range从100~10,倒序将所有的偶数添加到一个新列表中,然后对列表的元素进行筛选,将能被4整除的数留下来。

ko=[]for i in range(10,100):if i%2==0:ko.append(i)for j in ko:if j%4==0:print(j)

10,利用for循环和range,将1 - 30的数字一次添加到一个列表中,并循环这个列表,将能被3整除的数改成 *

ko=[]for i in range(1,30):ko.append(i)for j in range(len(ko)):if ko[j]%3 ==0:ko[j] = "*"print(ko)

11,查找列表li中的元素,移除每个元素的空格,并找出以 "A"或者"a"开头,并以"c"结尾的所有元素,并添加到一个新列表中,

最后循环打印这个新列表。li = ["TaiBai ", “alexC", “AbC ", "egon", " ri TiAn", "WuSir", " aqc"]

li = ["TaiBai ", "alexC", "AbC ", "egon", " ri TiAn", "WuSir", " aqc"]ko=[]for i in li :li=i.strip()if i.capitalize().startswith("A") and i.endswith("c")==1:ko.append(i)print(ko)

12,开发敏感词语过滤程序,提示⽤用户输入评论内容,如果用户输户的内容中包含特殊的字符:

敏感词列表li = ["苍老师", "东京热", "武藤兰", "波多野结⾐"]

则将用户输入的内容中的敏感词汇替换成等长度的 *(苍老师就替换 ** *),并添

加到一个列表中;如果用户输入的内容没有敏感词汇,则直接添加到上述的列 表中。

lis=[]li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]content= input("请输入评论:")for i in li :if i in content:content = content.replace(i,"*"*len(i))lis.append(content)print(content)

13,有如下列表

li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"]#循环打印列表中的每个元素,遇到列表则再循环打印出它⾥⾯的元素。我想要的结果是:'''134"alex"37,8"taibai"5ritian'''for el in li:if type(el) == list:for el2 in el:if type(el2) == str:print(el2.lower())else:print(el2)else:if type(el)==str:print(el.lower())else:print(el)

14. 把班级学⽣数学考试成绩录⼊到⼀个列表中: 并求平均值. 要求: 录⼊的时候

要带着⼈名录⼊, 例如: 张三_44

lis=[]while 1:content=input("请输入信息:")if content.upper() == "Q":breaklis.append(content)#总分scot=0for i in lis:scot += int(i.split("_")[1])print(scot)#平均分print(scot/len(lis))

15. 敲七游戏. 从0开始数数. 遇到7或者7的倍数要在桌上敲⼀下. 编程来完成敲 七

lis=[]n=int(input("请输入一个数:"))for i in range(0,n):if i%7==0 or "7" in str(i):lis.append("咣")else:lis.append(i)print(lis)

16. (升级题) 编写程序. 完成⼼动⼥⽣的筛选. (升级题)

⾸先. 程序会提示⽤户录⼊10位⼼仪⼥⽣的姓名. 然后把10位⼥⽣的名

字和序号展示出来. 由⽤户选择⼼动⼥⽣. 此时⽤户可以选择3个⼼动⼥⽣. 把⽤

户选中的三个⼼动⼥⽣的名字打印出来. 供⽤户继续选择. 这⼀次选择. 只能选

择⼀名⼥⽣. 然后输出⽤户的⼼动⼥⽣是xxx

运⾏效果:

lis=[]i=0while i< 10 :nh="请输入心仪的女生"+"(你还可以输入" + str(10-i) +"个)"xd = input(nh+":")i+=1lis.append(xd)index=0for j in lis :index+=1print("编号:"+ str(index) + ", " +"名字:" + j )lst=[]count=1while count<=3 :hh="请输入第"+ str(count) + "个美眉的编号:"gxh= int(input(hh + ":"))count +=1lst.append(lis[gxh-1])index2 = 0for h in lst:index2 +=1print("编号:" + str(index2) + ", " + "名字:" + h)love =int(input("请输入你喜欢的编号:"))print("程序选出来了你喜欢的是" + lst[love-1])

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。