《0基础》学习Python——第十讲

小知识点补充

一、json大字符串

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的方式为基础,同时也易于解析和生成。因为其简洁性和可读性,JSON已成为数据交换的首选格式。

大字符串是指包含大量数据的字符串。在使用JSON时,大字符串可以存储或传输大量的JSON数据。大字符串可以用于存储或传输复杂的结构化数据,例如从数据库中检索的数据、从API调用中返回的数据等。

在前端开发中,大字符串通常用于获取或存储包含大量数据的JSON对象。例如,当使用ajax请求从服务器获取数据时,服务器通常会将数据以JSON格式包装在一个大字符串中返回给前端,然后前端可以解析这个字符串来获取数据并进行相应的处理。

在后端开发中,大字符串通常用于将复杂的数据结构转换为JSON格式进行传输。例如,在使用Python进行后端开发时,可以将大量的数据结构(如字典、列表等)转换为JSON格式的大字符串,然后通过网络传输给前端。

例如可以把某东的某件商品的评论提取出来,例如随机截取一个片段

复制代码
"id": "a2cc2478caba42fc",
          "name": "时尚美观",
          "count": 188,
          "type": 4,
          "canBeFiltered": True,
          "stand": 1,
          "rid": "a2cc2478caba42fc",
          "ckeKeyWordBury": "eid=104^"

从表面看其是字典类型,那么给他定义一个名字,

python 复制代码
dict_a = {"id": "a2cc2478caba42fc",
          "name": "时尚美观",
          "count": 188,
          "type": 4,
          "canBeFiltered": True,
          "stand": 1,
          "rid": "a2cc2478caba42fc",
          "ckeKeyWordBury": "eid=104^"}

那么可以通过两个函数对其进行处理,

1、json.jumps(dict):把字典类型数据转换成json类型数据

2、json.loads(str):把字符串类型转化成字典类型

python 复制代码
dict_a = {"id": "a2cc2478caba42fc",
          "name": "时尚美观",
          "count": 188,
          "type": 4,
          "canBeFiltered": True,
          "stand": 1,
          "rid": "a2cc2478caba42fc",
          "ckeKeyWordBury": "eid=104^"}

import json

# dict数据转换成为json字符串
str_dict = json.dumps(dict_a)
print(str_dict, type(str_dict))

# 把json字符串转换为dict 然后可以使用字典的方法去处理
dict_b = json.loads(str_dict)
print(dict_b, type(dict_b))

二、快排

即快速排序(Quicksort),是一种常用的排序算法,它通过将一个待排序的数组分成较小和较大的两个子数组,然后对这两个子数组分别递归地进行排序,最终使整个数组有序。

快速排序的基本思想是选择一个基准元素(pivot),将数组分成左右两个部分,其中左边部分的元素都小于等于基准元素,右边部分的元素都大于等于基准元素。然后再对左右两部分分别递归地进行排序,直到每个子数组只包含一个元素或为空。

视频演示如下:(图像为网络摘取)

python 复制代码
def quick_sort(li):
    # 出口
    if len(li) == 1 or len(li) == 0:
        return li

    # 分治法 二分 大的放右边 小的放左边
    mid = li[len(li) // 2]
    left = []
    right = []
    li.remove(mid)
    for i in li:
        if i > mid:
            right.append(i)
        else:
            left.append(i)
    # 左右和右边的列表需要做同样的事情
    return quick_sort(left) + [mid] + quick_sort(right)

    pass

if __name__ == '__main__':
    print(quick_sort([34, 5, 6, 23, 56, 42, 342, 12, 35, 3, 4513, 431]))

    pass
相关推荐
LIN-JUN-WEI11 分钟前
[ESP32]VSCODE+ESP-IDF环境搭建及blink例程尝试(win10 win11均配置成功)
c语言·开发语言·ide·vscode·单片机·学习·编辑器
望获linux1 小时前
【Linux基础知识系列】第四十三篇 - 基础正则表达式与 grep/sed
linux·运维·服务器·开发语言·前端·操作系统·嵌入式软件
ahead~1 小时前
【大模型入门】访问GPT_API实战案例
人工智能·python·gpt·大语言模型llm
HXR_plume1 小时前
【计算机网络】王道考研笔记整理(1)计算机网络体系结构
网络·笔记·计算机网络
笑鸿的学习笔记1 小时前
qt-C++语法笔记之Stretch与Spacer的关系分析
c++·笔记·qt
留不住丨晚霞1 小时前
说说SpringBoot常用的注解?
java·开发语言
大模型真好玩2 小时前
准确率飙升!GraphRAG如何利用知识图谱提升RAG答案质量(额外篇)——大规模文本数据下GraphRAG实战
人工智能·python·mcp
19892 小时前
【零基础学AI】第30讲:生成对抗网络(GAN)实战 - 手写数字生成
人工智能·python·深度学习·神经网络·机器学习·生成对抗网络·近邻算法
hardStudy_h2 小时前
C++——内联函数与Lambda表达式
开发语言·jvm·c++
applebomb2 小时前
没合适的组合wheel包,就自行编译flash_attn吧
python·ubuntu·attention·flash