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