查看“Python列表类型的操作”的源代码
←
Python列表类型的操作
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==列表的操作方法== ===添加元素=== *append()用于向列表尾部追加一个元素,insert()用于向列表任意指定位置插入一个元素 <nowiki>>>> x = [1, 2, 3] >>> x.append(4) #在尾部追加元素</nowiki> append仅用于增加一个元素,如果希望增加多个元素,可以使用加号,将两个列表合并: <nowiki>>>> ls =[1,2,3] >>> lt =[4,5,6] >>> ls = ls + lt >>> print(ls) [1, 2, 3, 4, 5, 6]</nowiki> insert(i,x)在列表ls中序号i位置上增加元素x,序号i之后的元素序号依次增加。 <nowiki>>> print(ls) [1, 2, 3, 4, 5, 6] >>> ls.insert(1,1.5) >>> print(ls) [1, 1.5, 2, 3, 4, 5, 6]</nowiki> ===删除元素=== *pop()用于删除并返回指定位置(默认是最后一个)上的元素; *remove()用于删除列表中第一个值与指定值相等的元素; *clear()用于清空列表中的所有元素。这3个方法也属于原地操作 <nowiki>>>> x = [1, 2, 3, 4, 5, 6, 7] >>> x.pop() #弹出并返回尾部元素 7 >>> x.pop(0) #弹出并返回指定位置的元素 1 >>> x.clear() #删除所有元素 >>> x [] >>> x = [1, 2, 1, 1, 2] >>> x.remove(2) #删除首个值为2的元素 >>> del x[3] #删除指定位置上的元素 >>> x [1, 1, 1]</nowiki> ===列表排序=== *列表对象的sort()方法用于按照指定的规则对所有元素进行排序;reverse()方法用于将列表所有元素逆序或翻转。 <nowiki>>>> x = list(range(11)) #包含11个整数的列表 >>> import random >>> random.shuffle(x) #把列表x中的元素随机乱序 >>> x [6, 0, 1, 7, 4, 3, 2, 8, 5, 10, 9] >>> x.sort() #按默认规则排序 >>> x [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> x.reverse() </nowiki> ===复制列表=== *copy复制列表,而直接赋值的方法不产生新列表 <nowiki>>>> x = list(range(11)) >>> y = x.copy() >>> x.clear() >>> print(y) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]</nowiki> <nowiki>>>> x = list(range(11)) >>> y = x >>> x.clear() >>> print(y) []</nowiki> 列表是一个十分灵活的数据结构,当程序需要使用组合数据类型管理批量数据时,请尽量使用列表类型。 ===练习=== *请补充横线处的代码,listA中存放了已点的餐单,让Python帮你增加一个“红烧肉”,去掉一个“水煮干丝”。 <nowiki>listA = ['水煮干丝','平桥豆腐','白灼虾','香菇青菜','西红柿鸡蛋汤'] listA.___①____ ("红烧肉") listA.____②____ ("水煮干丝") print(listA)</nowiki> *ls 是一个列表,内容如下: ls = [123, "456", 789, "123", 456, "789"] 请补充如下代码,将列表 ls 逆序打印 <nowiki>ls = [123, "456", 789, "123", 456, "789"] ___①___ print(ls)</nowiki> ==列表的操作函数== *max()、min()函数用于返回列表中所有元素的最大值和最小值, *sum()函数用于返回列表中所有元素之和; *len()函数用于返回列表中元素个数,zip()函数用于将多个列表中元素重新组合为元组并返回包含这些元组的zip对象; *enumerate()函数返回包含若干下标和值的迭代对象; *map()函数把函数映射到列表上的每个元素,filter()函数根据指定函数的返回值对列表元素进行过滤; *all()函数用来测试列表中是否所有元素都等价于True,any()用来测试列表中是否有等价于True的元素。 *标准库functools中的reduce()函数以及标准库itertools中的compress()、groupby()、dropwhile()等大量函数也可以对列表进行操作。 <nowiki>>>> x = list(range(11)) #生成列表 >>> import random >>> random.shuffle(x) #打乱列表中元素顺序 >>> x [0, 6, 10, 9, 8, 7, 4, 5, 2, 1, 3] >>> all(x) #测试是否所有元素都等价于True False >>> any(x) #测试是否存在等价于True的元素 True >>> max(x) #返回最大值 10 >>> max(x, key=str) #按指定规则返回最大值 9 >>> min(x) 0 >>> sum(x) #所有元素之和 55 >>> len(x) #列表元素个数 11</nowiki> ===any()=== any() 函数用于 当元素全部为False时,则返回 False,如果有一个为 True,则返回 True。 元素除了是 0、空、FALSE 外都算 TRUE。 <nowiki> >>> any(['a','b','c','d']) True >>> any([0,'a','b','c']) True</nowiki> ===all()=== all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。 元素除了是 0、空、None、False 外都算 True。 <nowiki> >>> all(['a', 'b', '', 'd']) False >>> all(['a', 'b', 'c', 'd']) True</nowiki> ===enumerate() === >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>> list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] 普通的for循环: <nowiki> i = 0 seq = ['one', 'two', 'three'] for element in seq: print(i, seq[i]) i += 1 </nowiki> enumerate 循环: <nowiki> for i, element in enumerate(seasons): print(i,element)</nowiki> ===map()函数=== map() 函数会根据提供的函数对指定序列做映射。 第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。 <nowiki> >>> def square(x): return x**2 >>> map(square,[1,2,3,4,5]) <map object at 0x0000029D25788B48> >>> list(map(square,[1,2,3,4,5])) [1, 4, 9, 16, 25] >>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) [1, 4, 9, 16, 25]</nowiki> ==应用:人员管理系统== <nowiki> #1、打印功能提示 print("="*50) print(" 商品管理系统") print("1.添加一个商品") print("2.删除一个商品") print("3.修改一个商品") print("4.查询一个商品") print("5.查询所有商品") print("6.退出系统") print("="*50) names = [] #定义一个列表存储商品# while True: #死循环,让程序多次执行 #2、获取用户选择 num = input("请输入选择的功能序号:") #3、根据用户选择,执行相应的功能 if num == '1': newName = input("请输入要添加的商品:") names.append(newName) print(names) elif num == '2': delName = input("请输入要删除的商品:") names.remove(delName) print(names) elif num == '3': alterName = input("请输入要修改的商品:") index = names.index(alterName) newName = input("请输入修改后的商品:") names[index] = newName elif num == '4': findName = input("请输入要查询的商品:") if findName in names: print("系统中存在此人") else: print("查无此人") elif num == '5': for i in names: print(i) elif num == '6': break; else: print("选择错误,请重新选择!") </nowiki>
返回至
Python列表类型的操作
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息