使用Python,我尝试比较两个嵌套列表中列表的特定元素,以便打印出值最接近第二个元素的元素。这些嵌套列表是字典中键的值。可能更容易想象
myFstDict = {key1 : list1, mySecDict = {key2 : list2,
key1A: list1A} key2A: list2A}
list 1 = [ [a, 10, b], list 2 = [ [g, 41, h],
[c, 22, d], [i, 50, j],
[e, 43, f], ] [k, 73, l], ]
在本例中,我将获取列表2中第一个元素的第二个元素(即41),并查找列表1中哪个第二个元素的值最接近。所以我把41和10,22,43做比较。答案是43,因为它的值最接近41。然后我需要打印包含43的列表的索引。然后对列表2的下一个元素(即[i,50,j])重复此操作。为了简单起见,我只从每本词典中列出了一个列表。你知道吗
到目前为止,我要完成的代码如下:
for key in myDict:
for i in range(len(mySecDict[key])):
elmt_of_intrst = mySecDict[key][i][1]
x=0
while ((int(elmt_of_intrst) - int(myFirstDict[key][x][1])) > 0):
x = x+1
index_of_list = x
我理解这是一个有缺陷的代码,因为元素并非总是按所示的递增顺序排列。几天来,我一直在努力寻找一个更好的方法来做这件事,所以任何指导都将不胜感激。你知道吗
事先谢谢你,如果我没有正确遵守任何协议,请告诉我。这是我第一次在这个网站上提问。你知道吗
我建议使用
abs()
函数来获得两个元素之间的差异。接着是min
算法的min-max
部分。你知道吗min
算法:使用与数组第一个元素的差值初始化val&使用第0个索引初始化ind。
数组中所有元素的循环:
val
,则更新val
,并将ind
更新到其位置相关问题 更多 >
编程相关推荐