繁体   English   中英

从数组中获取值

[英]Obtaining value from an array

我尝试了很多方法来让我从signalxIP获取值,但它似乎不起作用。.AppliedFieldIP和signalxIP的值不均衡

appliedFieldIP = [10,5,0,-5,-10,-5,0,5,10]
signalxIP = [2,1,0,-1,-2,-1,0,1,2]

我想要的范围是从0到-5到-10。 我使用下面的代码来实现它。 但是我无法从signalxIP获得价值。

aIP = appliedFieldIP[:appliedFieldIP.index(min(appliedFieldIP)) + 1] # 10,5,0,-5,-10
x2 = (filter(lambda x: x <= 0 <= max(aIP), aIP)) # 0,-5,-10
print aIP >>> 10,5,0,-5,-10
print x2 >>> 0,-5,-10

例如

if x2 is 0, y2 that is from signalxIP must be 0.
   x2 is -5, y2 is -1
   x2 is -10, y2 is -2

这确实很丑陋,但是:

appliedFieldIP = [10,5,0,-5,-10,-5,0,5,10]
signalxIP = [2,1,0,-1,-2,-1,0,1,2]

zipped = list(zip(appliedFieldIP, signalxIP))
cutoff_index = appliedFieldIP.index(min(appliedFieldIP))+1
zipped2 = zipped[:cutoff_index]
# this aIP should be the same as aIP in your code
aIP = [pair[0] for pair in zipped2]
intermediate = list(filter(lambda x: x[0] <= 0 <= max(aIP), zipped2))
x2 = [pair[0] for pair in intermediate]
y2 = [pair[1] for pair in intermediate]

print(aIP)
print(x2)
print(y2)

结果:

[10, 5, 0, -5, -10]
[0, -5, -10]
[0, -1, -2]

基本上,这个想法是,你zip appliedFieldIPsignalxIP在一起(给你zipped ),然后在压缩列表进行操作,所以,只要你砍元素出的appliedFieldIP一部分,你同时削减相同的元素出来的signalxIP部分。 最后,我们仅提取signalxIP部分,给出列表y2 您可以稍微缩短一点,但是我保留了一些冗长的内容,因为我不确定以后可能需要重用该部分的内容(例如aIP )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM