如何优化代码以从列表列表中删除所有列表中的n位置
发布时间:2020-12-20 11:59:21 所属栏目:Python 来源:网络整理
导读:我在网站上搜索此问题,我发现很多关于从列表列表中删除特定值的帖子. 但是,这不能回答我的问题. 让我们: mylist=[[1,2,3,4],[100,374,283,738]] 现在,在我看来,两个列表是相互关联的.列出1个数字项目:1,4,…和列表2这些项目的功能(例如价格:100美元,374美
我在网站上搜索此问题,我发现很多关于从列表列表中删除特定值的帖子.
但是,这不能回答我的问题. 让我们: mylist=[[1,2,3,4],[100,374,283,738]] 现在,在我看来,两个列表是相互关联的.列出1个数字项目:1,4,…和列表2这些项目的功能(例如价格:100美元,374美元等). 现在,我想从列表中删除元素(数量和价格),如果list2高于某个值(例如,如果一个项目太贵,超过300美元) 我一直在尝试,我得到了这个: n=0 # counter for position in the list for i in mylist[1]: if i>300: for j in mylist: del j[n] n=n+1 结果: [[1,3],283]] 这实际上有效.它看起来效率不高:我必须多次访问列表,我必须创建新的变量.循环太多了. 由于列表可以使用理解列表,我很想知道是否有更高效和优雅的方法获得相同的结果 谢谢 解决方法
使用带过滤生成器表达式的zip:
>>> mylist = [[1,738]] >>> mylist[:] = list(map(list,zip(*((a,b) for a,b in zip(*mylist) if b<300)))) >>> mylist [[1,283]] 请注意,这会保留旧的mylist指针,以模仿代码修改原始列表的方式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |