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

1 投票
3 回答
1726 浏览
提问于 2025-04-18 14:31

我有两个列表,叫做 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 时才会被包括在内。

撰写回答