pythonav.com
首页
知识库
免费视频
项目实战
每天20道面试题
登录
注册
书接上文,本篇继续来进行讲解Python常见数据类型。  ## 4. 列表(list) 可以把列表当做是一个有序的容器,在里面可以放很多的元素。 ### 4.1 列表的定义 ```python user_list = ["铁锤","钢弹","弹头"] number_list = [98,88,666,12,-1] data_list = [1,True,"武沛齐"] ``` ### 4.2 常用方法(功能) 为了方便我们操作列表,Python中对所有列表提供了一些的功能。 1. 追加,在原列表中尾部追加值。 ```python data_list = [] v1 = input("请输入姓名") v2 = input("请输入昵称") data_list.append(v1) data_list.append(v2) print(data_list) ``` 2. 插入,在原列表的指定索引位置插入值 ```python user_list = ["苍老师","有坂深雪","大桥未久"] user_list.insert(0,"马蓉") user_list.insert(2,"李小璐") print(user_list) ``` 3. 扩展,讲一个列表中的元素添加另外一个列表。 ```python tools = ["搬砖","菜刀","榔头"] weapon = ["AK47","M6"] tools.extend(weapon) # weapon中的值逐一追加到tools中 print(tools) ``` 4. 在原列表中根据值删除(从左到右找到第一个删除) ```python user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"] user_list.remove("Alex") print(user_list) ``` 5. 在原列表中根据索引踢出某个元素 ```python user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"] ele = user_list.pop() # 在user_list删除最后一个,并讲删除值赋值给ele item = user_list.pop(2) # 在user_list中删除索引未2的值,并将删除值赋值给item ``` 6. 清空原列表 ```python user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"] user_list.clear() print(user_list) ``` 7. 反转原列表 ```python user_list = ["王宝强","陈羽凡","Alex","贾乃亮","Alex"] user_list.reverse() print(user_list) ``` ### 4.3 转换为列表 如果想要让某些元素转换为列表类型,一般需要通过list强转,他的内部其实就是循环每个元素,再将元素追加到列表中。 所以,想要转换为列表类型有要求:必须可以被循环的元素才能转换为列表。 ```python message = "我猜你的枪里没有子弹" data = list(message) print(data) # ["我","猜","你","的","枪","里","没","有","子","弹"] ``` ### 4.4 其他 1. 获取长度 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四'] print( len(user_list) ) ``` 2. 索引 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四'] print( user_list[0] ) print( user_list[2] ) print( user_list[3] ) ``` 3. 根据索引删除元素 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] del user_list[1] del user_list[3] ``` 4. 根据索引替换元素 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] user[0] = "王大拿" user[-1] = "广坤" ``` 5. 切片 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四'] print( user_list[0:2] ) print( user_list[1:] ) print( user_list[:-1] ) ``` 6. 步长 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] print( user_list[1:4:2] ) print( user_list[0::2] ) print( user_list[1::2] ) print( user_list[4:1:-1] ) ``` 7. for循环 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] for item in user_list: print(item) ``` ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] for item in user_list: if item == '刘华强': continue print(name) ``` ### 4.5 嵌套 列表属于容器,内部可以存放各种数据,所以他也支持列表的嵌套,如: ```python data = [ "谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝" ] ``` 对于嵌套的值,可以根据之前学习的索引知识点来进行学习,例如: ```python data = [ "谢广坤",["海燕","赵本山"],True,[11,22,33,44],"宋小宝" ] print( data[0] ) print( data[1] ) print( data[0][2] ) print( data[1][-1] ) data.append(666) print(data) del data[-2] print(data) data[1].append("谢大脚") print(data) ``` ### 练习题 1. 写代码,有如下列表,按照要求实现每一个功能。 ```python li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] ``` - 计算列表的长度并输出 - 请通过步长获取索引为偶数的所有值,并打印出获取后的列表 - 列表中追加元素"seven",并输出添加后的列表 - 请在列表的第1个位置插入元素"Tony",并输出添加后的列表 - 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表 - 请将列表的第3个位置的值改成 "太白",并输出修改后的列表 - 请将列表 l2=[1,"a",3,4,"heart"] 的每一个元素追加到列表li中,并输出添加后的列表 - 请将字符串 s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 - 请删除列表中的元素"ritian",并输出添加后的列表 - 请删除列表中的第2个元素,并输出删除元素后的列表 - 请删除列表中的第2至第4个元素,并输出删除元素后的列表 2. 写代码,有如下列表,利用切片实现每一个功能 ```python li = [1, 3, 2, "a", 4, "b", 5,"c"] ``` - 通过对li列表的切片形成新的列表 [1,3,2] - 通过对li列表的切片形成新的列表 ["a",4,"b"] - 通过对li列表的切片形成新的列表 [1,2,4,5] - 通过对li列表的切片形成新的列表 [3,"a","b"] - 通过对li列表的切片形成新的列表 [3,"a","b","c"] - 通过对li列表的切片形成新的列表 ["c"] - 通过对li列表的切片形成新的列表 ["b","a",3] 3. 写代码,有如下列表,按照要求实现每一个功能。 ```python lis = [2, 3, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"] ``` - 将列表lis中的"k"变成大写,并打印列表。 - 将列表中的数字3变成字符串"100" - 将列表中的字符串"tt"变成数字 101 - 在 "qwe"前面插入字符串:"火车头" 4. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: ```python 0 武沛齐 1 景女神 2 肖大侠 ``` 5. 请用代码实现循环输出元素和值:users = ["武沛齐","景女神","肖大侠"] ,如: ```python 1 武沛齐 2 景女神 3 肖大侠 ``` 6. 写代码实现以下功能 - 如有变量 googs = ['汽车','飞机','火箭'] 提示用户可供选择的商品: ```python 0,汽车 1,飞机 2,火箭 ``` - 用户输入索引后,将指定商品的内容拼接打印,如:用户输入0,则打印 您选择的商品是汽车。 7. 请用代码实现 ```python li = "alex" ``` 利用下划线将列表的每一个元素拼接成字符串"a_l_e_x" 8. 利用for循环和range找出 0 ~ 100 以内所有的偶数,并追加到一个列表。 9. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并追加到一个列表。 10. 利用for循环和range 找出 0 ~ 50 以内能被3整除的数,并插入到列表的第0个索引位置,最终结果如下: ```python [48,45,42...] ``` 11. 查找列表li中的元素,移除每个元素的空格,并找出以"a"开头,并添加到一个新列表中,最后循环打印这个新列表。 ```python li = ["alexC", "AbC ", "egon", " riTiAn", "WuSir", " aqc"] ``` ## 5. 元祖(tuple) 元组也是一个容器,里面可以存放各种数据(和列表相似),但他有一个特殊的特点:元组的`儿子`元素不允许添加、不允许修改、不允许删除,只能读。 一般用于存储一些在程序中不应该被修改的一系列值。 ### 5.1 元组的定义 ```python v1 = (11,22,33,) v2 = ("武沛齐","Alex",) v3 = ("武沛齐",) ``` 注意:建议在元组的最后多加一个逗号,用于标识他是一个元组。 ```python # 面试题 1. 比较值 v1 = (1) 和 v2 = 1 和 v3 = (1,) 有什么区别? 2. 比较值 v1 = ((1),(2),(3)) 和 v2 = ((1,),(2,),(3,),) 有什么区别? ``` ### 5.2 常见操作 无 ### 5.3 转换 其他类型可以转换为元组,一般可以被循环的元素才能转换,目前我们学到的可以被循环有:字符串和列表。 ```python name = "武沛齐" data = tuple(name) print(data) # 输出 ("武","沛","齐") ``` ```python name = ["武沛齐",18,"pythonav"] data = tuple(name) print(data) # 输出 ("武沛齐",18,"pythonav") ``` ### 5.4 其他 元组和列表非常相似,但由于元组的子元素无法修改的特点,所有在元组都没有修改、删除、添加的操作,只有读操作。 1. 获取长度 ```python user_list = ("范德彪","刘华强",'尼古拉斯赵四',) print( len(user_list) ) ``` 2. 索引 ```python user_list = ("范德彪","刘华强",'尼古拉斯赵四',) print( user_list[0] ) print( user_list[2] ) print( user_list[3] ) ``` 3. 切片 ```python user_list = ("范德彪","刘华强",'尼古拉斯赵四',) print( user_list[0:2] ) print( user_list[1:] ) print( user_list[:-1] ) ``` 4. 步长 ```python user_list = ("范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能") print( user_list[1:4:2] ) print( user_list[0::2] ) print( user_list[1::2] ) print( user_list[4:1:-1] ) ``` 5. for循环 ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] for item in user_list: print(item) ``` ```python user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] for item in user_list: if item == '刘华强': continue print(name) ``` ### 5.5 嵌套 由于元组和列表都可以充当`容器`,他们内部可以放很多元素,并且也支持元素内的各种嵌套。 ```python tu = ('今天姐姐不在家','姐夫和小姨子在客厅聊天',('姐夫问小姨子税后多少钱','小姨子低声说道说和姐夫还提钱')) tu1 = tu[0] tu2 = tu[1] tu3 = tu[2][0] tu4 = tu[2][1] print(tu1) # 今天姐姐不在家 print(tu2) # 姐夫和小姨子在客厅聊天 print(tu3) # 姐夫问小姨子税后多少钱 print(tu4) # 小姨子低声说道说和姐夫还提钱 ``` ```python # 练习题:判断是否可以实现,如果可以请写代码实现。 li = ["alex",[11,22,(88,99,100,),33] "WuSir", ("ritian", "barry",), "wenzhou"] - 请将 "WuSir" 修改成 "武沛齐" - 请将 ("ritian", "barry",) 修改为 ['日天','日地'] - 请将 88 修改为 87 - 请将 "wenzhou" 删除,然后再在列表第0个索引位置插入 "周周" ``` ## 知识补充:range range在Python中可以帮助我们快速生成一个特定范围的数字`列表`。 ```python v1 = range(1,6) # 生成的数为:[1、2、3、4、5] v2 = range(1,6,2) # 生成的数为:[1、3、4] v3= range(6,1,-1) # 生成的数为:[6、5、4、3、2] # 注意:在Python2中range会直接生成列表;在Python3中range生成是一个range对象(不会立即在内存中创建这些数,而是在循环时候边使用边创建,节省内存开销); ''' - Python2执行: range(1,100000000000000) 数据全部创建,速度很慢 - Python3执行: range(1,100000000000000) 数据不立即创建,速度很快 ''' # 提示:python2中还有一个xrange,他和python3中的range相同,不会再内存中立即创建数据。 ``` ### range和for循环 在项目开发中range一般会和for循环放在一起使用,进而获取一些的数字。 ```python for i in range(10): print(i) ``` ```python for i in range(2,10): print(i) ``` ```python for i in range(2,10,2): print(i) ``` ```python for i in range(10,0,-1): print(i) ``` ```python # 案例 user_list = ["范德彪","刘华强",'尼古拉斯赵四',"宋小宝","刘能"] for i in range(0,len(user_list)): print(i, user_list[i] ) username = "武沛齐" for i in range(0,len(username)): print(i, username[i] ) num_tuple = ("范德彪","刘华强",'尼古拉斯赵四',) for i in range(0,len(num_tuple)): print(i,len(i)) ``` ### 练习题 ``` 利用for循环和range打印出下面列表的索引。 li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 利用for循环和range找出100以内所有的偶数并将这些偶数插入到一个新列表中 利用for循环和range 找出50以内能被3整除的数,并将这些数插入到一个新列表中 利用for循环和range从100~1,倒序打印 利用for循环和range循环1-30的数字,将能被3整除的添加到一个列表中,将能被4整除的添加到另外一个列表中。 ```
用户评论
登录
或
注册
后才能发表评论
目录
学前必备
第一章 环境搭建
第二章 快速入门
第三章 Python基础
第四章 进制和编码
第五章 数据类型(一)
第六章 数据类型(二)
第七章 数据类型(三)
第八章 总结和考试题
第九章 实战案例
第六章 文件操作
第七章 函数
迭代器
生成器
装饰器
模块
开发规范
面向对象
附赠:vs code 环境搭建
回复