《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^"

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

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):把字符串类型转化成字典类型

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),将数组分成左右两个部分,其中左边部分的元素都小于等于基准元素,右边部分的元素都大于等于基准元素。然后再对左右两部分分别递归地进行排序,直到每个子数组只包含一个元素或为空。

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

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

上一篇:Zookeeper + Kafka 消息队列群集部署