基于嵌套数组Sample中0值位置提取对应Test数组元素的技术需求
解决嵌套数组按条件提取元素的问题
首先,咱们先明确你的需求:给定两个结构完全一致的嵌套数组Test和Sample,需要在每个对应子数组中,提取Sample元素为0时,Test数组对应位置的字母,最终得到目标嵌套数组Output。
实现思路
核心就是双层遍历匹配:
- 外层遍历
Test和Sample的每一对子数组(因为两个数组的结构完全对应) - 内层遍历每一对子数组里的元素位置,判断
Sample对应位置的元素是否为0,如果是就把Test对应位置的字母收集起来 - 把每一组收集到的字母列表组合成最终的嵌套数组
Python 代码实现
Test = [['c','d','b','t','j','n','k','s','p','t','k'],['l','u','y','r','c','b']] Sample = [[1,0,1,1,2,0,3,4,0,0,4],[1,0,1,2,0,3]] # 用嵌套列表推导式实现,简洁高效 Output = [[test_char for test_char, sample_num in zip(test_sub, sample_sub) if sample_num == 0] for test_sub, sample_sub in zip(Test, Sample)] print(Output) # 输出:[['d','n','p','t'],['u','c']]
代码解释
- 外层的
zip(Test, Sample):把Test和Sample的子数组一一配对,比如第一对是Test[0]和Sample[0],第二对是Test[1]和Sample[1] - 内层的
zip(test_sub, sample_sub):把每一对子数组里的元素按位置配对,比如Test[0][0]和Sample[0][0],Test[0][1]和Sample[0][1]等 - 条件判断
if sample_num == 0:筛选出Sample元素为0的情况,然后收集对应的test_char - 整个列表推导式会自动把每一组收集到的字符列表组合成最终的嵌套数组,完全符合你的需求
如果你需要其他编程语言的实现,或者有更复杂的扩展需求,也可以随时补充说明~
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

