如何获取两个列表中的对应值
我有两个列表,叫做 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 notebook 中尝试绘制 E 和 A 中对应值的图。
3 个回答
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)
这段代码是用来做某些操作的,但具体的功能需要根据上下文来理解。代码块通常包含一系列指令,计算机会按照这些指令一步一步地执行。对于初学者来说,理解每一行代码的作用是非常重要的。
如果你看到代码中有一些符号或者关键词,比如“函数”、“变量”等,记住这些都是编程的基本概念。函数就像是一个小工具,可以重复使用,而变量则是用来存储信息的容器。
总之,代码块是编程的基础,理解它们能帮助你更好地掌握编程的技巧和逻辑。
0
如果这两个列表的大小是一样的,你可以使用`enumerate`这个功能来为每个列表创建一个新的列表:
final_a = []
final_c = []
for ind, x in enumerate(C):
if x > 400:
final_c.append(x)
final_a.append(A[ind])
3
我会先把 A 和 C 这两个东西用 zip
函数合在一起,然后再计算 E:
E_pairs = [pair for pair in zip(A, C) if pair[1] > 400]
这样你就能得到一个包含 A 和 C 值的列表,只有当 C 的值超过 400 时才会被包括在内。