python - Python 3.x:打印特定的数组项
问题描述
我有两个嵌套数组,看起来像这样:
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...长度的数组,但这似乎是实现我想要的一种相当复杂的方法。
提前致谢 :)
解决方案
尝试这个:
firstArray=[[1,10],[11,31],[32,40],[41,61],[62,78]]
secondArray=[[1,10],[12,32],[33,39],[41,78]]
foundYou=[]
didNotFindYou=[]
for element in secondArray:
if element in firstArray:
foundYou.append(element)
else:
index = firstArray[secondArray.index(element)]
nextindex = firstArray[secondArray.index(element)+1]
didNotFindYou.append([index, nextindex])
print('found:', foundYou)
print('did not find:', didNotFindYou)
输出:
found: [[1, 10]]
did not find: [[[11, 31], [32, 40]], [[32, 40], [41, 61]], [[41, 61], [62, 78]]]
我遍历secondArray
唯一是因为你说你想检查项目secondArray
是否在firstArray
,这是第 6 行。然后我检查元素是否在firstArray
,这是第 7 行。然后我得到元素的索引secondArray
,然后在 中获取具有相同索引的元素firstArray
,这是在第 10 行。然后我做了与第 10 行中提到的相同的事情,但我只是在索引中添加 1,这是第 11 行。
如果您需要更多帮助,我将编辑我的答案并告诉您您所要求的解决方案
推荐阅读
- html - 在 Spring 中从服务器端渲染 Html/js
- java - Selenium Java Vk 密钥异常
- xamarin - 如何通过传入类型参数来自定义 Xamarin 模板?
- docker - 使用 `docker inspect` 获得的层摘要与从注册表 API 获得的层摘要之间存在差异
- sql - Postgresql 排除已经存在的友谊关系
- vba - Excel VBA宏将符合条件的行复制到另一张纸上的新行
- android - WorkManager - 运行周期性任务
- node.js - Web 进程无法绑定到 $PORT heroku 使用 node.js 部署错误
- e-commerce - 如何启用 2Checkout 以接受全球所有国家/地区的账单/送货地址?
- angular - routerLinkActive 用于多条路由