gpt4 book ai didi

检测列表是否在正值之后包含负值的 Pythonic 方法

转载 作者:行者123 更新时间:2023-12-01 23:14:38 25 4
gpt4 key购买 nike

是否有更优雅的方法来检测列表中的值是否为负数,然后为正数?

例如 [-1, 0, -2, 2] 返回 True,因为 -1 是负数,2 的索引是高于 -1 的索引。

[1, 2, 3, 2] 返回 False,因为所有值都是正数。

[-1, -2, -3, -4] 返回 False,因为所有值为负数。

[4, 3, 2, 1, -1] 返回 False。

到目前为止,这是我的代码:

def my_function(my_list):
neg_index = None
for index, item in enumerate(my_list):
if item < 0:
neg_index = index
if item > 0:
pos_index = index
if neg_index is not None:
if pos_index > neg_index:
return True

return False

最佳答案

您可以使用 zip 来处理元素及其后续元素:

def negThenPos(L):
L = list(filter(None,L)) # ignore zeroes
return any(a<0 and b>0 for a,b in zip(L,L[1:]))

print(negThenPos([-1, 0, -2, 2])) # True
print(negThenPos([1, 2, 3, 2])) # False
print(negThenPos([-1, -2, -3, -4])) # False
print(negThenPos([4, 3, 2, 1, -1])) # False

关于检测列表是否在正值之后包含负值的 Pythonic 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69226196/

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