gpt4 book ai didi

python - 列表理解头痛

转载 作者:太空狗 更新时间:2023-10-30 00:30:50 25 4
gpt4 key购买 nike

我有一个这样的嵌套列表:

list = [[1,2,3], [2,5,7,6], [1,-1], [5,7], [6,3,7,4,3], [2, 5, 1, -5]]

我想做的是删除嵌套列表,其中这些列表中的值既有正数也有负数。我试过通过列表理解来做到这一点,但我无法弄清楚。

def method(list):
return [obj for obj in list if (x for x in obj if -x not in obj)]

得到的结果应该是这样的:

 list = [[1,2,3], [2,5,7,6], [5,7], [6,3,7,4,3]]

最佳答案

假设您想要列表中的元素要么全部为负要么全部为正,您可以使用 all 预定义函数来检查这两种可能性

result = [L for L in x if all(y>0 for y in L) or all(y<0 for y in L)]

编辑:

在评论中,您阐明了什么是有效列表(例如 [-1, 2] 是有效的)...使用这个新公式,测试应该是

result = [L for L in x if all(-y not in L for y in L)]

然而,现在每个测试的列表大小都是二次方的。使用 set 可以解决这个问题

result = [L for L in x if all(-y not in S for S in (set(L),) for y in L)]

关于python - 列表理解头痛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208677/

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