【发布时间】:2018-11-01 00:30:00
【问题描述】:
我有两个嵌套数组,它们看起来像这样:
firstArray=[[1,10],[11,31],[32,40],[41,61],[62,78]]
secondArray=[[1,10],[12,32],[33,39],[41,78]]
我现在想在 firstArray 中搜索 secondArray 的元素。 我想要区分两个事件:
1:如果直接找到元素,我想打印。
2:如果没有找到,我想打印前面和后面的元素,或者它跨越的元素/包含它的元素。
例如,对于第二个数组的 [1,10] 我想打印 firstArray 的 [1,10],但是对于 secondArray 的 [12,32] 我想打印 firstArrays 的 [11,31]和 [32,40]。对于 secondArray 的 [33,39] 我想打印 firstArray 的 [32,40] 等等。
我知道,我可以使用嵌套的 for 循环访问这两个数组,并且可以通过索引访问元素。如果没有直接命中,我将无法完成该部分。
对于直接点击,我正在执行以下操作:
foundYou=[]
for entry in firstArray:
for element in secondArray:
if(entry[0] == element[0]) and (entry[1] == element[1]):
foundYou.append(element)
我也做了一些关于索引的研究,但不知道如何解决这个问题。我也想过使用 =、,但它会打印所有元素的数字比第一个位置的搜索要小,但它会打印出比我想要的多得多的数字。
我可以使用映射和另一个数组来“索引”,其值来自 1...长度的数组,但这似乎是实现我想要的一种相当复杂的方法。
提前致谢:)
【问题讨论】:
-
目前正在研究以下想法:将元素的当前位置 (=index) 存储在一个变量中,以通过访问 firstArray[variable.-1] 使用它来打印前后元素(例如)跨度>
标签: python arrays python-3.x for-loop try-except