(以更简洁的方式再次询问)
我有四个值列表,我需要像这样链接第一个和最后一个:
这样我可以绘制积分(4,8350.1416),(10,13167.329),(15,29200.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.1416,13167.329 ......),这当然无法完成。
我试图将列表绘制成如下:
但是list4中的黑色插图位于x轴的正确位置,在list1中给出。
答案 0 :(得分:2)
从左到右命名列表为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中的元素似乎是sigle-element list,代码变为:
for i in l3:
print (l1[i[0]],l2[i[0]])
答案 1 :(得分:1)
我不太清楚你要做什么,但这是我的猜测
,实施如下
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)
我也怀疑@Vincenzooo的回答已经非常接近你想要的了。也许
for i in l3:
print (l1[i[0]],l2[i[0]])
答案 2 :(得分:0)
谢谢大家,特别是@Vincenzoo
现在可以使用:
uberminxlist = []
uberminylist = []
for i in ubermin_pixels:
uberminxlist.append(minimum_pixels[i[0]])
uberminylist.append(minimum_values[i[0]])
可爱:)