在进行数据处理的工作中,有时只是通过一维的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. Python学习笔记(二)——列表

    Python学习笔记(二)--列表 Python中的列表可以存放任何数据类型 >>> list1 = ['Hello','this','is','GUN',123,['I','Lov ...

  5. ACM_二维数组的查找

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

  6. 剑指Offer01之二维数组中查找目标数

    剑指Offer之二维数组中查找目标数 题目描述 ​ 在一个二维数组中(每个一维数组的长度相等),每一行都是从左到右递增的顺序排序,每一列都是从上到下递增的顺序排序,输入这样一个二维数组和一个整数,判断 ...

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

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

  8. matlab学习笔记11_1低维数组操作

    一起来学matlab-matlab学习笔记11 11_1 低维数组操作repmat函数,cat函数,diag函数 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab ...

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

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

随机推荐

  1. Hadoop序列化与Writable接口(一)

    Hadoop序列化与Writable接口(一) 序列化 序列化(serialization)是指将结构化的对象转化为字节流,以便在网络上传输或者写入到硬盘进行永久存储:相对的反序列化(deserial ...

  2. windows下使用linux命令搜文件

    在linux系统的黑幕下,我们只能通过find命令来搜文件,而在windows的界面里,我们只能通过搜索框来搜.两者各有利弊,前者单调但高效,后者用户体验好却比较慢.能不能在windows使用linu ...

  3. 从内存的角度观察 堆、栈、全局区(静态区)(static)、文字常量区、程序代码区

    之前写了一篇堆栈的,这里再补充下内存其他的区域 1.栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) — 一般由程 ...

  4. CArray,CList,CMap如何实例化

    1.定义一个CMap,向这个CMap中增加数据项(键-值对).CMap<CString, LPCTSTR, CString, LPCTSTR>m_ItemMap;CString strKe ...

  5. mybatis实现继承映射

    ORM 框架的优势在于能让我们利用面向对象的思维去操作数据库, hibernate 作为重量级的 ORM 框架对面向对象的支持很强大.作为半自动化的 mybatis ,对面向对象的支持也是很完备的.这 ...

  6. sklearn中的predict与predict_proba的区别(得到各条记录每个标签的概率(支持度))

    假定在一个k分类问题中,测试集中共有n个样本.则: predict返回的是一个大小为n的一维数组,一维数组中的第i个值为模型预测第i个预测样本的标签: predict_proba返回的是一个n行k列的 ...

  7. json对象转换

    String modules =...; //json格式的String对象 //String对象转换为JSON格式数组 JSONArray moduleArr=JSONObject.parseArr ...

  8. Oracle关于date类型数据的总结

    往Oracle数据库中插入日期型数据(to_date的用法) INSERT  INTO  FLOOR  VALUES  ( to_date ( '2007-12-20 18:31:34' , 'YYY ...

  9. 无线加密的多种方法及其区别(WEP WPA TKIP EAP)

    无线加密的多种方法及其区别(WEP WPA TKIP EAP) 无线网络的安全性由认证和加密来保证. 认证允许只有被许可的用户才能连接到无线网络: 加密的目的是提供数据的保密性和完整性(数据在传输过程 ...

  10. public interface Sampler extends Serializable, TestElement

    在看jmeter源码时看到的,当时就傻了,不能啊,java中只能是单继承啊,呃,其实是类只能是单继承,而接口可以多继承,不要以为extends后边跟的都是类 Serializable, TestEle ...