Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在两个列表中获得相应的值_Python_List_Matplotlib_Plot_Figures - Fatal编程技术网

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

Python 如何在两个列表中获得相应的值,python,list,matplotlib,plot,figures,Python,List,Matplotlib,Plot,Figures,所以我有两个名为A和C的列表,每个列表中存储了相同数量的数据点。我创建了一个名为E的新列表,其中包含C中大于400的值 我需要画一个E和a的对比图 我的问题是如何从列表A中创建E得到相应的值,以便绘制图 有没有一种方法可以从与E对应的a中获取数据,从而生成一个我可以绘制的新列表?谢谢 我使用的数据是一个相当大的列表,但下面是一个示例: xpos,ypos,measurement,error 96.54, 92.10, 236.69, 23.67 26.26, 17.36,

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

我需要画一个E和a的对比图 我的问题是如何从列表A中创建E得到相应的值,以便绘制图

有没有一种方法可以从与E对应的a中获取数据,从而生成一个我可以绘制的新列表?谢谢

我使用的数据是一个相当大的列表,但下面是一个示例:

    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用于XPO,B用于YPO,C用于度量,D用于错误

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


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

我会在计算E之前将A和C放在一起

E_pairs = [pair for pair in zip(A, C) if pair[1] > 400]

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

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

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)
final_a = []
final_c = []
for ind, x in enumerate(C):
    if x > 400:
        final_c.append(x)
        final_a.append(A[ind])

这是一个模糊的问题。你能举一个你想看的输入/输出的例子吗?正如@TheSoundDefense提到的,两个简单的输入和预期输出的例子会很有帮助。不要试图用文字来解释它。显示一些A、E和C的示例列表。这与我的答案基本相同,但创建
E
时不需要理解列表
E=zip(A,B)
是等效的,只是您将得到一个元组列表而不是列表列表。但不需要编辑这些对,因此也不需要将它们从元组转换为列表。您可以将两个列表视为元组,这样就更容易绘制a>400Yes的a vs B;你的答案不需要使用
zip
的输出作为元组。我喜欢你的答案,彼得,这是我需要的,谢谢!那么,如何将元组拆分为两个单独的列表呢?我按照我所知道的方法使用.split(),但我遇到了一个错误,说元组无法拆分。将元组列表拆分为两个单独列表的最简洁和惯用的方法是
a\u vals,e\u vals=zip(*e\u pairs)
。完美,这就是我需要的。再次感谢
a\u vals,e\u vals=zip(*e\u pairs)
显示为返回元组而不是列表。这可能重要,也可能不重要,取决于您的应用程序。正确-如果您需要可变性,我认为
列表
构造函数是转换元组的最佳方法。