Python中二维数组的高效简洁增删改方法求助
Python中二维数组的高效简洁增删改方法求助
嗨,刚学Python遇到这种列表嵌套的结构处理需求太正常啦,我来给你分享两种实用的处理方式,看你哪种用着顺手~
方法一:直接操作原列表(适合数据量小的场景)
这种方法就是直接遍历列表找到目标元素,完成更新后再删除不需要的条目:
score = [['Andy', 80], ['John', 70], ['Diana', 100]] # 第一步:更新Andy的分数为70 for item in score: if item[0] == 'Andy': item[1] = 70 break # 找到目标就终止循环,不用白跑剩下的元素 # 第二步:删除名字为John的条目 # 用列表推导式一行搞定,简洁又高效 score = [item for item in score if item[0] != 'John'] print(score) # 输出结果:[['Andy', 70], ['Diana', 100]]
方法二:转成字典处理(适合数据量大的场景)
如果你的数据条目很多,用列表遍历会比较慢,这时候转成字典就方便多了——字典是通过键直接定位元素,查找速度比遍历列表快N倍:
score = [['Andy', 80], ['John', 70], ['Diana', 100]] # 先把列表转成字典,名字作为键,分数作为值 score_dict = {name: s for name, s in score} # 更新Andy的分数 score_dict['Andy'] = 70 # 删除John的条目 del score_dict['John'] # 如果需要转回原来的列表格式,再用列表推导式转回去 score = [[name, s] for name, s in score_dict.items()] print(score) # 同样得到目标结果:[['Andy', 70], ['Diana', 100]]
两种方法各有优势,小数据量用第一种直接操作列表就行,数据多的话用字典处理效率更高~
备注:内容来源于stack exchange,提问作者Tommy Sayugo
相关产品推荐
相关产品推荐

