【发布时间】:2022-01-03 20:43:39
【问题描述】:
我想匹配 2 个列表 a 和 b 中的顺序值对,并从 b 列表中删除值,只保留 b 的第一个较大值(与 a 相比)与 a 相同的索引位置。让我们看一个简单的例子
a = [206, 252, 272, 315, 349, 374, 394, 406, 440, 466]
b = [209, 220, 244, 255, 285, 301, 327, 358, 380, 396, 419, 447, 476, 492]
首先查看列表 a 中索引 0 处的值 如果索引 0 处的 b 值较小,则应将其从 b 中删除 接下来看看 b 中的索引 1 ,如果小于 a[0] 它也应该被删除等等......
最终结果应该是:
b = [209,255,285,327,358,380,396,419,447,476]
我的想法是尝试嵌套的 for 循环
for idx, j in enumerate(a):
for jdx, k in enumerate(b):
if b[jdx] < a[idx]:
del b[jdx]
但是,我无法得到我想要的最终结果......
【问题讨论】:
-
听起来可能很有趣,但很不清楚。
-
@KellyBundy ,试图澄清。希望有帮助
-
仍不清楚。如果您明确地进行更多比较/删除(例如说明比较哪些数字、删除哪些数字以及列表/指针在每个步骤之后的外观),将会有所帮助。