美文网首页
数据结构

数据结构

作者: Noza_ea8f | 来源:发表于2022-06-22 09:21 被阅读0次

简单的数据结构就是列表了;
把数据放在一个列表里,需要的时候就取出来;
但有时候事情并不就是这么简单;

ls1 = ['a1', '0001', '张三', {'语文': 60}, {'数学': 70}, {'英语': 80}]
ls2 = ['a2', '0002', '李四', {'语文': 61}, {'数学': 71}, {'化学': 81}]
ls3 = ['a3', '0003', 'a3', {'语文': 61}, {'英语': 71}, {'化学': 81}]

我要把ls3中的字符a全部替换为b怎么办?

如果列表中的元素都是字符可以用下面的方法

ls = ['a3', '0003', 'a3']
ls = [x.replace('a', 'b') for x in ls]
print(ls)

输出:

['b3', '0003', 'b3']

但如果如ls3那样,里面含有其他类型的数据就会报错
这时候该怎么办呢?
python有高阶函数map,可以研究一下;
map函数我理解就是传入一个函数和列表参数,然后对用这个函数对列表中的每一个元素进行处理,之后返回处理的结果;
那么针对ls3,我这样来设计;
我只需要考虑针对一个元素的处理

def func(x):
    # 判断数据类型
    if type(x) is str:
        return x.replace('a', 'b')
    elif type(x) is dict:
        return x


ls3 = list(map(func, ls3))

print(ls3)

输出:

['b3', '0003', 'b3', {'语文': 61}, {'英语': 71}, {'化学': 81}]

这么看map函数的实质就是通过传入处理函数,方便处理列表中每一个元素;

下面我想要获得列表中所有课程的信息,这似乎就简单了

首先我考虑通过列表切片先拿到总的课程信息,注意列表是前闭后开

class_all = ls3[3:]
print(class_all)

输出:

[{'语文': 61}, {'英语': 71}, {'化学': 81}]

然后再把信息逐一遍历出来

for class_info in class_all:
    print(class_info)
    # 打印字典键值对,也就是分别打印科目名称和成绩
    for key, val in class_info.items():
        print(key, val)

输出:

{'语文': 61}
语文 61
{'英语': 71}
英语 71
{'化学': 81}
化学 81

这里不得不说一下filter函数;

在某些情况下它能够做与map相同的工作;
但是二者又存在区别;
map是对列表中的每个元素进行加工并返回这个列表;
filter可以过滤掉满足条件的元素;

如果我要过滤掉列表中成绩低于70的项,应该怎么做呢?

def f(x):
    if type(x) is dict:
        # 取出字典第一个元素进行判断
        if list(x.values())[0] > 70:
            return x


print(list(filter(f, ls3)))

输出:

[{'英语': 71}, {'化学': 81}]

相关文章

  • IOS开发_数据结构

    1、数据结构; 2、算法; 3、数据结构与算法; 1、数据结构; 1.1 概念: 数据结构:数据结构是计算...

  • py基础

    5Python集合容器 数据结构数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构...

  • 思维导图之数据结构+算法

    数据结构+算法 = 程序 数据结构比较 参考文章 数据结构与算法数据结构与算法(java)

  • 数据结构与算法分析:大纲]

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 本系列课程主要...

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 数据结构—概述

    数据结构概述 数据结构概述:程序设计 = 数据结构 + 算法数据结构:数据元素之间存在所有特定关系的集合,数据结构...

  • OVS 源码分析整理

    OVS 核心代码 OVS 架构 OVS 主要的数据结构数据结构关系图主要的数据结构和数据结构的参数数据结构代码 d...

  • 01. 数据结构与算法绪论

    一、数据结构 1. 什么是数据结构 2. 数据结构的分类 3. 常用的数据结构 4. 数据结构的应用表现 二、算法...

  • 数据结构与算法 - 查找

    数据结构与算法系列文章数据结构与算法 - 时间复杂度数据结构与算法 - 线性表数据结构与算法 - 树形结构数据结构...

  • C#之数据结构(上)

    数据结构 一般将数据结构分为两大类: 线性数据结构和非线性数据结构。 线性数据结构有: 线性表、栈、队列、串、数组...

网友评论

      本文标题:数据结构

      本文链接:https://www.haomeiwen.com/subject/dusrvrtx.html