Python 以编程方式将一个列表中的值与另一个列表中的值关联

Python 以编程方式将一个列表中的值与另一个列表中的值关联,python,list,Python,List,(以更简洁的方式再次提问) 我有四个值列表,我需要将第一个值和最后一个值链接在一起,如下所示: 这样我就可以画出点(48350.1416),(101367.329),(1529200.063),等等 enumerate函数可以让我访问最右边列表的索引,但是如何将该列表中的值与最左边列表中的正确值相关联 列表会随着代码的每次运行而变化,因此我需要以编程的方式进行更改,例如在for循环中 编辑:我的程序沿随机选择的行读取像素值。列表1保存最小值像素,列表2保存它们的值。然后列表3保存这些最小值的最

(以更简洁的方式再次提问)

我有四个值列表,我需要将第一个值和最后一个值链接在一起,如下所示:

这样我就可以画出点(48350.1416),(101367.329),(1529200.063),等等

enumerate
函数可以让我访问最右边列表的索引,但是如何将该列表中的值与最左边列表中的正确值相关联

列表会随着代码的每次运行而变化,因此我需要以编程的方式进行更改,例如在
for
循环中

编辑:我的程序沿随机选择的行读取像素值。列表1保存最小值像素,列表2保存它们的值。然后列表3保存这些最小值的最小值,列表4保存它们的值。这样描述它听起来比实际情况更令人困惑

我试过使用

ubermin_vals_x = []
for i in ubermin_values:
    value = ubermin_pixels[i]
    ubermin_vals_x.append(minimum_pixels[i])
但是它试图迭代这些值(8350.14161367.329…),这当然是不可能的

我试图将列表绘制成如下所示:


但是将列表4中的黑色插入符号放在x轴上的正确点上,如列表1所示。

将列表从左到右命名为l1、l2、l3、l4 l2对我来说似乎没用,因为它只是复制l4中的值,所以如果我理解了问题,代码可能是:

for i,v in zip(l3,l4):
    print (l1[i],v)  #or  plot
您可以将
v
替换为
l2[i]
。 或者更简单:

for i in l3:
    print (l1[i],l2[i])
从下面的注释可以看出,l3的示例元素似乎是单元素列表,代码变为:

for i in l3:
    print (l1[i[0]],l2[i[0]])

我不太清楚你想做什么,但这是我的猜测

  • 查找第2个数组中第4个数组中元素的索引
  • 使用该索引提取第一个数组中的数字
  • 具体实现如下

    a4 = [ 8350.1416, 13167.329, 29200.063 ] 
    a2 = [13846, 8350.1416, 0, 13167.329, 0, 29200.063]
    a1 = [1, 4, 7, 10, 12, 15, 18]
    idx = [a1[a2.index(x)] for x in a4]
    result = zip(idx, a4)
    
    我还怀疑@Vincenzoo的答案已经非常接近你想要的了。也许吧

    for i in l3:
        print (l1[i[0]],l2[i[0]])
    

    谢谢大家,尤其是@Vincenzoo

    它现在可用于:

    uberminxlist = []
    uberminylist = []
    for i in ubermin_pixels:
        uberminxlist.append(minimum_pixels[i[0]])
        uberminylist.append(minimum_values[i[0]])
    

    可爱:)

    列表2真的有必要吗?看起来你只是从列表4->3->1开始,我正在将列表绘制在一个图表上,我最不需要绘制的是第一个和最后一个列表中的点。请提供四个列表的最小示例-我们可以复制和使用。你为什么不分享你的原始数据?你有没有尝试解决这个问题?通过你的解决方案,我得到了TypeError:列表索引必须是整数或切片,而不是list。这是因为你列表中的元素是一个元素的列表。我不清楚为什么,但如果总是这样,可以用i[0]替换i,它应该会起作用。然后还必须用i[0]替换第二个索引