zoukankan      html  css  js  c++  java
  • Python学习笔记_二维数组的查找判断

    在进行数据处理的工作中,有时只是通过一维的list和有一个Key,一个value组成的字典,仍无法满足使用,比如,有三列、或四列,个数由不太多。

    举一个现实应用场景:学号、姓名、手机号,可以再加元素

    这里我想到的一个办法是采用二维数组来处理。

    软件环境:

    1.OS:Win10 64位

    2.Python 3.7

    参考代码,不多解释,下面代码可执行。

    #! -*- coding utf-8 -*-
    #! @Time  :2019/3/10 
    #! Author :Frank Zhang
    #! @File  :Test.py
    #! Python Version 3.7
    
    #判断某个元素是否在二位数组中存在,存在则返回True,不存在,则返回False
    list=[]
    def main():
        list_a=['a1','a2','a3']
        if list_a not in list:
            list.append(list_a)
    
        list_b=['b1','b2','b3']
        if list_b not in list:
            list.append(list_b)
    
        list_c=['c1','c2','c3']
        if list_c not in list:
            list.append(list_c)
    
        list_d=['d1','d2','d3']
        if list_d not in list:
            list.append(list_d)
    
    
        list_e=['e1','e2','e3']
        if list_e not in list:
            list.append(list_e)
    
        list_f=['c1','c2','c3']
        if list_f not in list:
            list.append(list_f)
        
        
        print(list)
        
        strTmp="b1"
        print("The search str is :" + strTmp)
    
        print("====================example 1=======================")
        if Find1(strTmp,list)==True:
            print("It's found")
        else:
            print("It's not found")
    
        print("====================example 2=======================")
        list_r=Find2(strTmp,list)
    
        if not list_r:
            print("The target list is not found.")
        else:
            print(list_r)
    
        print("====================example 3=======================")
        list_r=Find3(strTmp,list,1)
    
        if not list_r:
            print("The target list is not found.")
        else:
            print(list_r)
     
    
    #判断是否存在某个元素,如果存在,则返回True,不存在,则返回False
    def Find1(target,array):
        # 不存在数组则直接返回
        if not array:
            return False
        # 二维数组的行
        row = len(array)
        # 二维数组的列
        col = len(array[0])
        # 二层循环遍历二维数组
        for i in range(row):
            for j in range(col):
                # 如果目标值等于数组中的值,则找到
                if target == array[i][j]:
                    return True
        # 数组遍历结束后仍未找到
        return False
    
    #判断某个元素是否存在,存在则返回该元素存在的一维数组
    def Find2(target,array):
        if not array:
            return False
    
        # 二维数组的行
        row = len(array)
    
        # 二维数组的列
        col = len(array[0])
    
        # 二层循环遍历二维数组
        for i in range(row):
            for j in range(col):
                # 如果目标值等于数组中的值,则找到
                if target == array[i][j]:
                    return array[i]
         # 数组遍历结束后仍未找到
        return False
    
    def Find3(target,array,searchCol):
        if not array:
            return False
    
        # 二维数组的行
        row = len(array)
    
        # 二维数组的列
        col = len(array[0])
    
        # 二层循环遍历二维数组
        for i in range(row):
            # 如果目标值等于数组中的值,则找到
            if target == array[i][searchCol]:
                return array[i]
         # 数组遍历结束后仍未找到
        return False
     
    if __name__=="__main__":
        main()
    

    其中分三种情况:

    1.判断某个元素是否在二位数组中。在则返回True,不在则返回False

    2.判断某个元素是否在二维数组中,在则返回该元素所在的行,作为一维数组,可相应获取其它该一维数组里其它的元素。

    3.判断某个元素是否在二维数组指定列中,在则返回该元素所在的行。

  • 相关阅读:
    新概念英语(第一册)Lesson 1
    第七篇、Python之模块/包
    解压序列
    eval函数
    python--magic module 文件类型识别
    MIME_type
    彻底删除git中的文件(包括历史提交记录)
    for循环与range()函数
    Linux 内核的 Makefile
    Python module ---- abc
  • 原文地址:https://www.cnblogs.com/SH170706/p/10505527.html
Copyright © 2011-2022 走看看