如何在两个列表中获取相应的值

时间:2014-07-23 21:59:13

标签: python list matplotlib plot figures

所以我有两个名为A和C的列表,每个列表都有相同数量的数据点存储在其中。我创建了一个名为E的新列表,其中包含C中大于400的值。

我需要制作E与A的情节 我的问题是如何获得从列表A中创建E所获得的相应值,以便我可以制作一个情节?

有没有办法从A中获取与E对应的数据,这可能会创建一个我可以绘制的新列表?谢谢。

我使用的数据是一个非常大的列表,但这是一个例子:

    xpos,ypos,measurement,error
    96.54, 92.10, 236.69, 23.67
    26.26, 17.36, 457.55, 45.76
    96.15, 52.22, 369.31, 36.93
    53.23, 56.85, 630.77, 63.08
    82.48, 97.64, 198.24, 19.82

我删除了标题并为每个数据列创建了四个列表:A表示xpos,B表示ypos,C表示测量,D表示错误。

C,或者测量是我编辑为E的数据集,其值超过400.我想从A(xpos)获得与C中超过400的值匹配的值(或测量值) )。

我试图在iPython笔记本中绘制我从E获得的列表与A中的相应值。

3 个答案:

答案 0 :(得分:3)

我会在计算E:

之前通过zip A和C一起做到这一点
E_pairs = [pair for pair in zip(A, C) if pair[1] > 400]

这将为您提供A和C值的元组列表,其中C超过400。

答案 1 :(得分:0)

A=[100,300,400,200,500]

B=['a','b','c','d','e']

E=[[a,b] for a,b in zip(A,B)]

my_list=filter(lambda x:x[0]>400,E)

答案 2 :(得分:0)

如果列表大小相同,您可以使用枚举并列出每个列表:

final_a = []
final_c = []
for ind, x in enumerate(C):
    if x > 400:
        final_c.append(x)
        final_a.append(A[ind])