在进行数据处理的工作中,有时只是通过一维的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.判断某个元素是否在二维数组指定列中,在则返回该元素所在的行。

Python学习笔记_二维数组的查找判断的更多相关文章

  1. C语言学习笔记 (005) - 二维数组作为函数参数传递剖析

    前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...} / ...

  2. C语言学习笔记 (006) - 二维数组传参的三种表现形式

    # include <stdio.h> # include <stdlib.h> # define M # define N int getdate(int (*sp)[M]) ...

  3. Java编程基础阶段笔记 day06 二维数组

    二维数组 笔记Notes 二维数组 二维数组声明 二维数组静态初始化与二位初始化 二维数组元素赋值与获取 二维数组遍历 二维数组内存解析 打印杨辉三角 Arrays工具类 数组中常见的异常 二维数组 ...

  4. ACM_二维数组的查找

    二维数组的查找 Time Limit: 2000/1000ms (Java/Others) Problem Description: 给定一个n*m的二维数组,保证a[i][j] < a[i+1 ...

  5. C语言笔记(二维数组与数值指针)

    一.关于二维数组和二维数组区别 (1)一维数组在内存中是连续分布存储的,同样,二维数组也是在内存连续存储的.所以从内存的角度来分析,一维数组和二维数组其实没有本质区别. (2) 二维数组可以使用一维数 ...

  6. 【Python学习笔记之二】浅谈Python的yield用法

    在上篇[Python学习笔记之一]Python关键字及其总结中我提到了yield,本篇文章我将会重点说明yield的用法 在介绍yield前有必要先说明下Python中的迭代器(iterator)和生 ...

  7. Python学习笔记(二):条件控制语句与循环语句及常用函数的用法

    总结的内容: 1.条件控制语句 2.while循环语句 3.for循环语句 4.函数的用法 一.条件控制语句 1.介绍 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决 ...

  8. Python学习笔记(二):数据类型

    一.python中的数据类型 python中的数据类型包括:整型.浮点型.布尔型.字符串类型 整型(int)和浮点型(float) Python中的整型只有int,没有short.long:浮点型fl ...

  9. PHP开发笔记:二维数组根据某一项来进行排序

    比如说我们现在有一个二维数组: $arr = array( ‘d' => array(‘id' => 5, ‘name' => 1, ‘age' => 7), ‘b' => ...

随机推荐

  1. [译]ZOOKEEPER RECIPES-Locks

    锁 全局式分布式锁要求任何时刻没有两个客户端会获得同一个锁对象,这可以通过使用ZooKeeper实现.像优先级队列一样,首先需要定义一个锁节点. 在ZooKepeer的发布中src/recipes/l ...

  2. Centos 7 通过挂载系统光盘搭建本地yum仓库的方法

    实验环境:CentOS 7 1:在media文件下创建一个目录  #创建一个www文件 cd /media/www 2: 挂载光盘,将光盘挂载在刚才创建的www文件下 mount /dev/cdrom ...

  3. UML 六种关系

    .继承, 男人 和 人 的关系2.实现, 孕妇 和 生宝宝 的关系3.依赖, 人 和 大米.水4.关联, 男人 和 工作5.聚合, 弱整体和部分, 轮子和车6.组合, 强整体和部分, 眼睛和人 参考: ...

  4. MD5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)

    MD5 编辑 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.该算法的文件号为RFC 1321( ...

  5. nyoj117 求逆序数

    求逆序数 时间限制:2000 ms  |  内存限制:65535 KB 难度:5   描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中 ...

  6. c语言的lua库编写

    gcc编译 gcc -I/usr/local/include/ -L/usr/local/lib/ -lm -o engine_mlisten_lua ./src/engine_mlisten_lua ...

  7. vim 模式基础操作

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 前言 虽然Emacs已经可以完成大部分的编辑操作,但有时候为了方便也会用到vim.所以记录了 ...

  8. new和newInstance区别

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp55     在初始化一个类,生成一个实例的时候:newInstance() ...

  9. JaVa第二周学习总结

    第一周学习的时候上传图片用的是网站外链然后导致出现了极为尴尬的情形...然后我就把第一周的全改成本地上传了. 首先列出所做任务 1 安装IDEA 2学习二三章视频,课本 3调试代码,上传码云 4总结问 ...

  10. js 类数组对象arguments

    function Add() { for (var i = 0; i < arguments.length; i++) { console.log(arguments[i]); } } Add( ...