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

2024-04-20 02:10:01 发布

您现在位置:Python中文网/ 问答频道 /正文

(用更简洁的方式再问)

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

enter image description here

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

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

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

编辑:我的程序沿随机选择的行读取像素值。List1保存最小值像素,list2保存它们的值。然后list3保存这些最小值的最小值,list4保存它们的值。把它描述成那样听起来比实际情况要混乱得多!你知道吗

我试过用

ubermin_vals_x = []
for i in ubermin_values:
    value = ubermin_pixels[i]
    ubermin_vals_x.append(minimum_pixels[i])

但是它试图迭代这些值(8350.14161367.329…),这当然是做不到的。你知道吗

我试着把列表画成这样:

enter image description here

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


Tags: 函数代码程序编辑列表for链接编程
3条回答

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

for i,v in zip(l3,l4):
    print (l1[i],v)  #or  plot

您可以用l2[i]替换v。 或者更简单:

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

从下面的注释来看,l3的元素似乎是单元素列表,代码变成:

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

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

  1. 在第2个数组的第4个数组中查找元素的索引
  2. 使用该索引提取第一个数组中的数字

具体实施如下

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]])

可爱的:)

相关问题 更多 >