分分钟钟学会Python - 数据类型(list、tuple)
程序员文章站
2022-05-23 22:00:55
第四节 数据类型(列表、元祖) 今日内容 列表 元祖 1、列表 1.格式 2.公共方法 1.len 计算长度 2.索引 输出某一个元素 3.切片 输出某一段元素 4.修改(字符串/数字/布尔除外) 5.步长 选取列表中第几个元素 6.for循环 注意:for和while的应用场景: 有穷尽优先使用f ......
第四节 数据类型(列表、元祖)
今日内容
列表
元祖
1、列表
1.格式
users = ["ji",1,3,"gyhj"]
2.公共方法
-
1.len #计算长度
users = ["ji",1,3,"gyhj"] val = len(users) print(val) # 3
-
2.索引 #输出某一个元素
users = ["ji",1,3,"gyhj"] val = users[1] print(val) # 1
-
3.切片 #输出某一段元素
users = ["ji",1,3,"gyhj"] val = users[0:2] print(val) # "ji",1
-
4.修改(字符串/数字/布尔除外)
users = ["ji",1,3,"gyhj"] users[2] = 66 print(users) # ['ji', 1, 66, 'gyhj']
-
5.步长 #选取列表中第几个元素
users = ["ji",1,3,"gyhj"] val = users[0:3:2] print(val) # ['ji', 3]
-
6.for循环
users = ["ji",1,3,"gyhj"] for i in users: print(i) # 每个元素一次打印 """ users = ["ji","asdgfh","tryu","gyhj"] for i in users: # 第一次循环:i=“ji” for e in i: print(e) # 打印第一个元素中每个字符 """
# 练习题:请通过for循环和数字计数器实现:users = ['李邵奇','利奇航','张三丰','李子森'] 1 qwe 2 asd 3 zxc 4 rty # 方式一 users = ['qwe','asd','zxc','rty'] count = 1 for i in users: print(count,i) count += 1 # 方式二 users = ['qwe','asd' ,'zxc','rty'] users_len = len(users) # 4 for index in range(0,users_len): # [0,1,2,3] print(index,users[index])
注意:for和while的应用场景:
- 有穷尽优先使用for,
- 无穷尽用while
3.独有方法
-
1.append,在列表的最后追加一个元素
# 示例 users = ["sdxfc"] while true: name = input('请输入姓名:') users.append(name) print(users) # ['sdxfc', 'sdf']
-
2.insert #在指定索引位置进行插入元素
users = ['qwe','asd','zxc','rty'] users.insert(1,'zxc') print(users) # ['qwe', 'zxc', 'asd', 'zxc', 'rty']
-
3.remove # 删除 注意:()里不加删除内容报错
.pop # 删除 注意:()里不加数字,默认删除最后一个
del # 删除 注意:()里不加数字报错
.clear # 删除列表里所有元素 注意:()里不能加数字
users = ["ji",1,3,"gyhj"] # 方式一 users.remove('ji') print(users) # [1, 3, 'gyhj'] # 方式二 users.pop(1) print(users) #['ji', 3, 'gyhj'] # 方式三 del users[1] print(users) #['ji', 3, 'gyhj'] # 方式四 users.clear() print(users) # []
注意:
- 字符串本身不能修改或删除【不可变类型】
- 列表是【可变类型】
-
4.".reverse" #反转
v1 = [1,2,3111,32,13] print(v1) # [1, 2, 3111, 32, 13] v1.reverse() print(v1) # [13, 32, 3111, 2, 1]
-
5."sort" # 排序
v1 = [1,2,3111,32,13] v1.sort(reverse=false) # 从小到大(默认) print(v1) # [11, 13, 22, 32, 3111] v1.sort(reverse=true) # 从大到小 print(v1) # [3111, 32, 22, 13, 11]
4.总结
-
1.增:
- .append / .insert
-
2.删:
- .remove / .pop /. clear / del users[2]
-
3.改:
- users[3] = "新值"
-
4.查:
- 索引/切片
-
5.列表嵌套
users = ["a",0,true,[1,2,3,"kjhg"],[4,['sdf','dfg'],5,6]] users[0] # a users[2] # true users[3][2] # 3 users[3][-1] # "kjhg" users[3][-1][-1] # 'g' users[3] = 666 # ['a', 0, true, 666, [4, ['sdf', 'dfg'], 5, 6]]
2、元祖
1.格式
- users = [11,22,33] # 列表(元素可变)
- users = (11,22,33) # 元组(元素不可变)
2、公共方法
-
1.索引(排除:int/bool)
users = (11,22,33) print(users[0]) # 11 print(users[-1]) # 33
-
2.切片(排除:int/bool)
users = (11,22,33) print(users[0:2])
-
3.步长(排除:int/bool)
users = (11,22,33,"qwerty") print(users[0:2:2])
-
4.for循环(排除:int/bool)
users = (11,22,33,"qwerty") for item in users: print(item)
-
5.len(排除:int/bool)
users = (11,22,33,"qwerty") print(len(users))
3、独有方法(无)
4、 特殊
-
元组中的元素(儿子)不可被修改/删除
# 示例一: v1 = (11,22,33) v1[1] = 999 # 错误 v1 = 999 # 正确 # 示例二:可以嵌套 v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3)) # 示例三:嵌套 v2 = [11,22,33,(11,22,33)] v2[-1][1] = 99 # 错误 v2[-1] = 123 # 正确 # 示例四:嵌套 v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123
3、总结
1.列表(可变)
- 公共
- 索引
- 切片
- 步长
- 修改
- 删除 del
- for
- len
- 独有
- append
- insert
- pop
- remove
- clear
- 列表嵌套
2.元组(不可变)
-
公共
- 索引
- 切片
- 步长
- for
- len
独有功能(无)
-
元组嵌套
# 错误示例 v3 = (11,[1,2,3],22,33) v3[1] = 666 v3[1][2] = 123
4.练习题
#!/usr/bin/env python #-*- coding:utf-8 -*- # 1.简述解释性语言和编译型语言的区别? """ 解释性语言:一句一句代码进行解释 编译型语言:所有代码从头到尾进行编译 """ # 2.列举你了解的python的数据类型? """ 1.int 2.bool 3.str 4.列表 5.元组 """ # 3.写代码,有如下列表,按照要求实现每一个功能。 """ li = ["alex", "wusir", "ritian", "barry", "wenzhou"] 1.计算列表的长度并输出 a = len(li) print(a) 2.请通过步长获取索引为偶数的所有值,并打印出获取后的列表 a = li[0::2] print(a) 3.列表中追加元素"seven",并输出添加后的列表 li.append('seven') print(li) 4.请在列表的第1个位置插入元素"tony",并输出添加后的列表 li.insert(0,"tony") print(li) 5.请修改列表第2个位置的元素为"kelly",并输出修改后的列表 li[1] = "kelly" print(li) 6.请将列表的第3个位置的值改成 "太白",并输出修改后的列表 li[2] = "太白" print(li) 7.请将列表 a=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表 a=[1,"a",3,4,"heart"] li.append(a) print(li) 8.请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 print(['alex', 'wusir', 'ritian', 'barry', 'wenzhou', 'q','w','e','r','t']) 9.请删除列表中的元素"ritian",并输出添加后的列表 li.pop(2) print(li) 10.请删除列表中的第2个元素,并输出删除元素后的列表 li.pop(1) print(li) 11.请删除列表中的第2至第4个元素,并输出删除元素后的列表 li.pop(1) li.pop(1) li.pop(1) print(li) # 4.请用三种方法实现字符串反转 name = "小黑半夜三点在被窝玩愤怒的小鸟"(步长、while、for) #方法一 name = "小黑半夜三点在被窝玩愤怒的小鸟" a = name[::-1] print(a) # 方法二 name = "小黑半夜三点在被窝玩愤怒的小鸟" name_len = int(len(name)) a = -1 b = "" while true: b = name[a] b = b + b if a < -(name_len): break a = a - 1 print(b) # 方法三 name = "小黑半夜三点在被窝玩愤怒的小鸟" b = "" for a in name[-1]: b = b + a print(b) """ # 4.写代码,有如下列表,利用切片实现每一个功能 """ li = [1, 3, 2, "a", 4, "b", 5,"c"] 通过对li列表的切片形成新的列表 [1,3,2] a = li[0:3] print(a) 通过对li列表的切片形成新的列表 ["a",4,"b"] a = li[3:6] print(a) 通过对li列表的切片形成新的列表 [1,2,4,5] a = li[::2] print(a) 通过对li列表的切片形成新的列表 [3,"a","b"] a = li[1:-1:2] print(a) 通过对li列表的切片形成新的列表 [3,"a","b","c"] a = li[1::2] print(a) 通过对li列表的切片形成新的列表 ["c"] a = li[-1:] print(a) 通过对li列表的切片形成新的列表 ["b","a",3] a = li[5::-2] print(a) """ # 5.请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] """ 0 武沛齐 1 景女神 2 肖大侠 users = ["武沛齐","景女神","肖大侠"] count = 0 for i in users: print(count,i) count += 1 """ # 6.请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: """ 1 武沛齐 2 景女神 3 肖大侠 users = ["武沛齐","景女神","肖大侠"] count = 1 for i in users: print(count,i) count += 1 """ # 7.写代码,有如下列表,按照要求实现每一个功能 """ lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] 1.将列表lis中的"k"变成大写,并打印列表。 lis[2] = 'k' print(lis) 2.将列表中的数字3变成字符串"100" lis[1] = "100" print(lis) 3.将列表中的字符串"tt"变成数字 101 lis[3][2][1][0] = 101 print(lis) 4.在 "qwe"前面插入字符串:"火车头" lis[3].insert(0,"火车头") print(lis) """ # 8.写代码实现以下功能 #如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品: """ 0,汽车 1,飞机 2,火箭 用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。 googs = ['汽车','飞机','火箭'] count = len(googs) for i in range(0,count): print(i,googs[i]) #输出,打印 a = input("请用户输入:") #请用户输入 a = int(a) text = "您选择的是:%s" %(googs[a],) print(text) """ # 10.请用代码实现 """ li = "alex" #利用下划线将列表的每一个元素拼接成字符串"a_l_e_x" a = "_".join(li) print(a) """ # 11.利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。 """ a = [] for b in range(0,101): if b % 2 == 0: a.append(b) print(a) """ # 12.利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。 """ a = [] for b in range(0,51): if b % 3 == 0: a.append(b) print(a) """ # 13.利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下: """ a = [] for b in range(0,51): if b % 3 == 0: a.insert(0,b) print(a) """ # 14.查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。 """ li = ["taibai ", "alexc", "abc ", "egon", " ritian", "wusir", " aqc"] c = [] for b in li: # 循环li里面所有元素 b = b.strip() # 去除b里的空格 if b.startswith("a") == true: c.append(b) print(c) """ # 15.判断是否可以实现,如果可以请写代码实现。 """ li = ["alex",[11,22,(88,99,100,),33], "wusir", ("ritian", "barry",), "wenzhou"] - 请将 "wusir" 修改成 "武沛齐" li[2] = "武沛齐" print(li) # - 请将 ("ritian", "barry",) 修改为 ['日天','日地'] li[3] = ['日天','日地'] print(li) - 请将 88 修改为 87 不能 - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "文周" a = li.pop() li.insert(0,a) print(li) """
下一篇: 系统调用和库函数调用的区别