Skip to main content
 首页 » 编程设计

Python:如何找出列表中是否存在未知元素

2025年05月04日20Free-Thinker

zero_crossings2 基本上检测符号变化。 如果有 zero_crossings2,我想将 1 附加到 crossing_list,否则我想将 0 附加到 crossing_list。 代码np.where(np.diff(np.sign(a2)))[0]可以确定符号变化的索引。因此,如果它返回一个结果,我想在该特定位置返回一个“1”,并在任何地方返回一个“0”,它不会检测到符号变化。

这是我的代码的当前状态:

import numpy as np 
crossing_list = [] 
a2 = [1, 2, 1, 1, 0, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10] 
zero_crossings2 = np.where(np.diff(np.sign(a2)))[0] 
 
 
for i in range(len(a2)): 
    if X in zero_crossings2[i]: 
        crossing_list.append('1') 
    else: 
        crossing_list.append('0') 
 
crossing_list_new = np.array(crossing_list) 

我遇到的问题是在 if 语句中,“X”是未知的,所以我不知道列表中有哪个元素。

我的预期输出是:

[0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1] 

请您参考如下方法:

要得到你想要的数组,你可以这样做:

a2 = [1, 2, 1, 1, 0, -3, -4, 7, 8, 9, 10, -2, 1, -3, 5, 6, 7, -10] 
signs = np.sign(a2) 
crossings = np.where(np.diff(signs), 1, 0) 

缺少第一个零(因为crossings的第一个数字对应于a2的第一个和第二个数字的交叉),所以你可以添加它这个:

crossings = np.insert(crossings, 0, 0)