gpt4 book ai didi

python - 如何优化代码以从列表列表中删除所有列表中的 n 个位置

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:05 25 4
gpt4 key购买 nike

我在网站上搜索这个问题,发现很多关于从列表列表中删除特定值的帖子。

但是,这并没有回答我的问题。

让我们:

mylist=[[1,2,3,4],[100,374,283,738]]

现在,在我看来,这两个列表是相关联的。列出 1 个数字项目:1、2、3、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],[100,283]]

这确实有效。它看起来效率不高:我必须多次访问列表并且必须创建新变量。循环太多。

由于列表可以使用理解列表,我想知道是否有更有效和更优雅的方法来获得相同的结果

谢谢

最佳答案

zip 与过滤生成器表达式一起使用:

>>> mylist = [[1,2,3,4], [100,374,283,738]]
>>> mylist[:] = list(map(list, zip(*((a,b) for a,b in zip(*mylist) if b<300))))
>>> mylist
[[1, 3], [100, 283]]

请注意,这会保留旧的 mylist 指针,以模仿您的代码修改原始列表的方式。

关于python - 如何优化代码以从列表列表中删除所有列表中的 n 个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43289763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com