30段极简Python代码,30秒学一个实用技巧

人生苦短,快学Python!

学 Python 怎样才最快,当然是实战各种小项目,只有自己去想与写,才记得住规则。今天给大家分享的是 30 个极简任务,初学者可以尝试着自己实现;本文同样也是 30 段代码,Python 开发者也可以看看是不是有没想到的用法。

Python 是机器学习最广泛采用的编程语言,它最重要的优势在于编程的易用性。如果读者对基本的 Python 语法已经有一些了解,那么这篇文章可能会给你一些启发。作者简单概览了 30 段代码,它们都是平常非常实用的技巧,我们只要花几分钟就能从头到尾浏览一遍。

干货主要有:

① 200 多本 Python 电子书(和经典的书籍)应该有

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且可靠的练手项目及源码)

④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

Python学习交流Q群101677771
  1. 重复元素判定

以下方法可以检查给定列表是不是存在重复元素,它会使用 set() 函数来移除所有重复元素。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">all_unique<span class="hljs-params">(lst):
    <span class="hljs-keyword">return len(lst) == len(set(lst))
x = [<span class="hljs-number">1,<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">4,<span class="hljs-number">5,<span class="hljs-number">6]
y = [<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">4,<span class="hljs-number">5]
all_unique(x) </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 字符元素组成判定

检查两个字符串的组成元素是不是一样的。

<span class="hljs-keyword">from collections <span class="hljs-keyword">import Counter
<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">anagram<span class="hljs-params">(first, second):
    <span class="hljs-keyword">return Counter(first) == Counter(second)
anagram(<span class="hljs-string">"abcd3", <span class="hljs-string">"3acdb") </span></span></span></span></span></span></span></span></span>
  1. 内存占用

下面的代码块可以检查变量 variable 所占用的内存。

<span class="hljs-keyword">import sys
variable = <span class="hljs-number">30
<span class="hljs-built_in">print(sys.getsizeof(variable)) </span></span></span>
  1. 字节占用

下面的代码块可以检查字符串占用的字节数。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">byte_size<span class="hljs-params">(string):
    <span class="hljs-keyword">return(len(string.encode(<span class="hljs-string">'utf-8')))
byte_size(<span class="hljs-string">':grinning:') </span></span></span></span></span></span></span>
  1. 打印 N 次字符串

该代码块不需要循环语句就能打印 N 次字符串。

n = 2;
s =<span class="hljs-string">"Programming";
print(s * n);
</span>
  1. 大写第一个字母

以下代码块会使用 title() 方法,从而大写字符串中每一个单词的首字母。

s = <span class="hljs-string">"programming is awesome"
<span class="hljs-built_in">print(s.title())
</span></span>
  1. 分块

给定具体的大小,定义一个函数以按照这个大小切割列表。

<span class="hljs-keyword">from math <span class="hljs-keyword">import ceil
<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">chunk<span class="hljs-params">(lst, size):
    <span class="hljs-keyword">return list(
        map(<span class="hljs-keyword">lambda x: lst[x * size:x * size + size],
            list(range(<span class="hljs-number">0, ceil(len(lst) / size)))))
chunk([<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">4,<span class="hljs-number">5],<span class="hljs-number">2)
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 压缩

这个方法可以将布尔型的值去掉,例如(False,None,0,””),它使用 filter() 函数。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">compact<span class="hljs-params">(lst):
    <span class="hljs-keyword">return list(filter(bool, lst))
compact([<span class="hljs-number">0, <span class="hljs-number">1, <span class="hljs-literal">False, <span class="hljs-number">2, <span class="hljs-string">'', <span class="hljs-number">3, <span class="hljs-string">'a', <span class="hljs-string">'s', <span class="hljs-number">34])
</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 解包

如下代码段可以将打包好的成对列表解开成两组不同的元组。

<span class="hljs-built_in">array = [[<span class="hljs-string">'a', <span class="hljs-string">'b'], [<span class="hljs-string">'c', <span class="hljs-string">'d'], [<span class="hljs-string">'e', <span class="hljs-string">'f']]
transposed = zip(*<span class="hljs-built_in">array)
print(transposed)
[(<span class="hljs-string">'a', <span class="hljs-string">'c', <span class="hljs-string">'e'), (<span class="hljs-string">'b', <span class="hljs-string">'d', <span class="hljs-string">'f')]</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 链式对比

我们可以在一行代码中使用不同的运算符对比多个不同的元素。

<span class="hljs-string">a <span class="hljs-string">= <span class="hljs-number">3
<span class="hljs-string">print( <span class="hljs-number">2 <span class="hljs-string">< <span class="hljs-string">a <span class="hljs-string">< <span class="hljs-number">8<span class="hljs-string">) </span></span></span></span></span></span></span></span></span></span>
  1. 逗号连接

下面的代码可以将列表连接成单个字符串,且每一个元素间的分隔方式设置为了逗号。

hobbies = [<span class="hljs-string">"basketball", <span class="hljs-string">"football", <span class="hljs-string">"swimming"]
<span class="hljs-built_in">print(<span class="hljs-string">"My hobbies are: " + <span class="hljs-string">", ".join(hobbies))
</span></span></span></span></span></span>
  1. 元音统计

以下方法将统计字符串中的元音 (‘a’, ‘e’, ‘i’, ‘o’, ‘u’) 的个数,它是通过正则表达式做的。

<span class="hljs-keyword">import re
<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">count_vowels<span class="hljs-params">(str):
    <span class="hljs-keyword">return len(len(re.findall(<span class="hljs-string">r'[aeiou]', str, re.IGNORECASE)))
count_vowels(<span class="hljs-string">'foobar') </span></span></span></span></span></span></span></span>
  1. 首字母小写

如下方法将令给定字符串的第一个字符统一为小写。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">decapitalize<span class="hljs-params">(string):
    <span class="hljs-keyword">return str[:<span class="hljs-number">1].lower() + str[<span class="hljs-number">1:]
decapitalize(<span class="hljs-string">'FooBar') </span></span></span></span></span></span></span></span>
  1. 展开列表

该方法将通过递归的方式将列表的嵌套展开为单个列表。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">spread<span class="hljs-params">(arg):
    ret = []
    <span class="hljs-keyword">for i <span class="hljs-keyword">in arg:
        <span class="hljs-keyword">if isinstance(i, list):
            ret.extend(i)
        <span class="hljs-keyword">else:
            ret.append(i)
    <span class="hljs-keyword">return ret
<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">deep_flatten<span class="hljs-params">(lst):
    result = []
    result.extend(
        spread(list(map(<span class="hljs-keyword">lambda x: deep_flatten(x) <span class="hljs-keyword">if type(x) == list <span class="hljs-keyword">else x, lst))))
    <span class="hljs-keyword">return result
deep_flatten([<span class="hljs-number">1, [<span class="hljs-number">2], [[<span class="hljs-number">3], <span class="hljs-number">4], <span class="hljs-number">5]) </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 列表的差

该方法将返回第一个列表的元素,其不在第二个列表内。如果同时要反馈第二个列表独有的元素,还需要加一句 set_b.difference(set_a)。

def difference(a, b):
    set_a = <span class="hljs-keyword">set(a)
    set_b = <span class="hljs-keyword">set(b)
    comparison = set_a.difference(set_b)
    <span class="hljs-keyword">return <span class="hljs-keyword">list(comparison)
<span class="hljs-keyword">difference([<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3], [<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">4]) </span></span></span></span></span></span></span></span></span></span></span>
  1. 通过函数取差

如下方法首先会应用一个给定的函数,然后再返回应用函数后结果有差别的列表元素。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">difference_by<span class="hljs-params">(a, b, fn):
    b = set(map(fn, b))
    <span class="hljs-keyword">return [item <span class="hljs-keyword">for item <span class="hljs-keyword">in a <span class="hljs-keyword">if fn(item) <span class="hljs-keyword">not <span class="hljs-keyword">in b]
<span class="hljs-keyword">from math <span class="hljs-keyword">import floor
difference_by([<span class="hljs-number">2.1, <span class="hljs-number">1.2], [<span class="hljs-number">2.3, <span class="hljs-number">3.4],floor) </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 链式函数调用

你可以在一行代码内调用多个函数。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">add<span class="hljs-params">(a, b):
    <span class="hljs-keyword">return a + b
<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">subtract<span class="hljs-params">(a, b):
    <span class="hljs-keyword">return a - b
a, b = <span class="hljs-number">4, <span class="hljs-number">5
print((subtract <span class="hljs-keyword">if a > b <span class="hljs-keyword">else add)(a, b)) </span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 检查重复项

如下代码将检查两个列表是不是有重复项。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">has_duplicates<span class="hljs-params">(lst):
    <span class="hljs-keyword">return len(lst) != len(set(lst))
x = [<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">4,<span class="hljs-number">5,<span class="hljs-number">5]
y = [<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">4,<span class="hljs-number">5]
has_duplicates(x) </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 合并两个字典

下面的方法将用于合并两个字典。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">merge_two_dicts<span class="hljs-params">(a, b):
    c = a.copy()   </span></span></span></span>

在 Python 3.5 或更高版本中,我们也可以用以下方式合并字典:

<span class="hljs-function">def <span class="hljs-title">merge_dictionaries<span class="hljs-params">(a, b)
   <span class="hljs-keyword">return {**a, **b}
a = { <span class="hljs-string">'x': <span class="hljs-number">1, <span class="hljs-string">'y': <span class="hljs-number">2}
b = { <span class="hljs-string">'y': <span class="hljs-number">3, <span class="hljs-string">'z': <span class="hljs-number">4}
print(merge_dictionaries(a, b))
{<span class="hljs-string">'y': <span class="hljs-number">3, <span class="hljs-string">'x': <span class="hljs-number">1, <span class="hljs-string">'z': <span class="hljs-number">4}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 将两个列表转化为字典

如下方法将会把两个列表转化为单个字典。

def to_dictionary(<span class="hljs-keyword">keys, <span class="hljs-keyword">values):
    <span class="hljs-keyword">return dict(zip(<span class="hljs-keyword">keys, <span class="hljs-keyword">values))
<span class="hljs-keyword">keys = [<span class="hljs-string">"a", <span class="hljs-string">"b", <span class="hljs-string">"c"]
<span class="hljs-keyword">values = [<span class="hljs-number">2, <span class="hljs-number">3, <span class="hljs-number">4]
<span class="hljs-keyword">print(to_dictionary(<span class="hljs-keyword">keys, <span class="hljs-keyword">values))
</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 使用枚举

我们常用 For 循环来遍历某个列表,同样我们也能枚举列表的索引与值。

list = [<span class="hljs-string">"a", <span class="hljs-string">"b", <span class="hljs-string">"c", <span class="hljs-string">"d"]
<span class="hljs-keyword">for index, element in enumerate(list):
    <span class="hljs-built_in">print(<span class="hljs-string">"Value", element, <span class="hljs-string">"Index ", index, )
(<span class="hljs-string">'Value', <span class="hljs-string">'a', <span class="hljs-string">'Index ', <span class="hljs-number">0)
(<span class="hljs-string">'Value', <span class="hljs-string">'b', <span class="hljs-string">'Index ', <span class="hljs-number">1)
#(<span class="hljs-string">'Value', <span class="hljs-string">'c', <span class="hljs-string">'Index ', <span class="hljs-number">2)
(<span class="hljs-string">'Value', <span class="hljs-string">'d', <span class="hljs-string">'Index ', <span class="hljs-number">3)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 执行时间

如下代码块可以用来计算执行特定代码所花费的时间。

import <span class="hljs-built_in">time
start_time = <span class="hljs-built_in">time.<span class="hljs-built_in">time()
a = <span class="hljs-number">1
b = <span class="hljs-number">2
c = a + b
<span class="hljs-built_in">print(c) #<span class="hljs-number">3
end_time = <span class="hljs-built_in">time.<span class="hljs-built_in">time()
total_time = end_time - start_time
<span class="hljs-built_in">print(<span class="hljs-string">"Time: ", total_time)
(<span class="hljs-string">'Time: ', <span class="hljs-number">1.1205673217773438e-05)</span></span></span></span></span></span></span></span></span></span></span></span></span>

23.Try else

我们在使用 try/except 语句的时候也可以加一个 else 子句,如果没有触发错误的话,这个子句就会被运行。

<span class="hljs-keyword">try:
    <span class="hljs-number">2*<span class="hljs-number">3
<span class="hljs-keyword">except TypeError:
    print(<span class="hljs-string">"An exception was raised")
<span class="hljs-keyword">else:
    print(<span class="hljs-string">"Thank God, no exceptions were raised.")
</span></span></span></span></span></span></span>
  1. 元素频率

下面的方法会根据元素频率取列表中最常见的元素。

def most_frequent(<span class="hljs-keyword">list):
    <span class="hljs-keyword">return max(set(<span class="hljs-keyword">list), key = <span class="hljs-keyword">list.count)
<span class="hljs-keyword">list = [<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3,<span class="hljs-number">2,<span class="hljs-number">1,<span class="hljs-number">4,<span class="hljs-number">2]
most_frequent(<span class="hljs-keyword">list)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 回文序列

以下方法会检查给定的字符串是不是回文序列,它首先会把所有字母转化为小写,并移除非英文字母符号。最后,它会对比字符串与反向字符串是否相等,相等则表示为回文序列。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">palindrome<span class="hljs-params">(string):
    <span class="hljs-keyword">from re <span class="hljs-keyword">import sub
    s = sub(<span class="hljs-string">'[\W_]', <span class="hljs-string">'', string.lower())
    <span class="hljs-keyword">return s == s[::<span class="hljs-number">-1]
palindrome(<span class="hljs-string">'taco cat') </span></span></span></span></span></span></span></span></span></span></span>
  1. 不使用 if-else 的计算子

这一段代码可以不使用条件语句就实现加减乘除、求幂操作,它通过字典这一数据结构实现:

<span class="hljs-keyword">import <span class="hljs-keyword">operator
action = {
    <span class="hljs-string">"+": <span class="hljs-keyword">operator.add,
    <span class="hljs-string">"-": <span class="hljs-keyword">operator.sub,
    <span class="hljs-string">"/": <span class="hljs-keyword">operator.truediv,
    <span class="hljs-string">"*": <span class="hljs-keyword">operator.mul,
    <span class="hljs-string">"**": <span class="hljs-built_in">pow
}
print(action[<span class="hljs-string">'-'](<span class="hljs-number">50, <span class="hljs-number">25)) # <span class="hljs-number">25</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

27.Shuffle

该算法会打乱列表元素的顺序,它主要会通过 Fisher-Yates 算法对新列表进行排序:

<span class="hljs-attr">from <span class="hljs-string">copy import deepcopy
<span class="hljs-attr">from <span class="hljs-string">random import randint
<span class="hljs-attr">def <span class="hljs-string">shuffle(lst):
    <span class="hljs-attr">temp_lst = <span class="hljs-string">deepcopy(lst)
    <span class="hljs-attr">m = <span class="hljs-string">len(temp_lst)
    <span class="hljs-attr">while <span class="hljs-string">(m):
        <span class="hljs-attr">m <span class="hljs-string">-= 1
        <span class="hljs-attr">i = <span class="hljs-string">randint(0, m)
        </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 展开列表

将列表内的所有元素,包括子列表,都展开成一个列表。

<span class="hljs-attr">def <span class="hljs-string">spread(arg):
    <span class="hljs-attr">ret = <span class="hljs-string">[]
    <span class="hljs-attr">for <span class="hljs-string">i in arg:
        <span class="hljs-attr">if <span class="hljs-string">isinstance(i, list):
            <span class="hljs-attr">ret.extend(i)
        <span class="hljs-attr">else:<span class="hljs-string">
            <span class="hljs-attr">ret.append(i)
    <span class="hljs-attr">return <span class="hljs-string">ret
</span></span></span></span></span></span></span></span></span></span></span></span></span></span>
  1. 交换值

不需要额外的操作就能交换两个变量的值。

<span class="hljs-function"><span class="hljs-keyword">def <span class="hljs-title">swap<span class="hljs-params">(a, b):
  <span class="hljs-keyword">return b, a
a, b = <span class="hljs-number">-1, <span class="hljs-number">14
swap(a, b) </span></span></span></span></span></span></span>
  1. 字典默认值

通过 Key 取对应的 Value 值,可以通过以下方式设置默认值。如果 get() 方法没有设置默认值,那么如果遇到不存在的 Key,则会返回 None。

d = {<span class="hljs-string">'a': 1, <span class="hljs-string">'b': 2}
<span class="hljs-built_in">print(d.get(<span class="hljs-string">'c', 3)) </span></span></span></span>

非常感谢点赞/转发的各位~

Original: https://www.cnblogs.com/sn5200/p/15912528.html
Author: Python可乐的呀
Title: 30段极简Python代码,30秒学一个实用技巧

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/814912/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 36~ pandas读取

    目录 1.pandas简介 2 索引 2.1 查看行索引 2.2 查看列索引 2.3 设定索引 2.4 重设索引 3. pandas获取行–loc和iloc 3.0 l…

    Python 2023年8月22日
    046
  • scrapy 中间件(Middleware)

    中间件(Middleware) scrapy的中间件是一个重要概念,作用在于批量拦截请求和响应。scrapy中有2种中间件,爬虫中间件(Spider Middleware)和下载中…

    Python 2023年10月4日
    032
  • pandas写入excel指定行_使用pandas操作excel

    pandas操作excel 最近由于要处理一些excel表格,发现pandas可以免去很多的繁琐的人工劳动,在这里记录一下我所用到的知识。 导入文档 将excel中的工作表导入 f…

    Python 2023年8月17日
    040
  • MySQL必知必会笔记-Mysql基本操作

    mysql的基本操作包括增、删、改、查,本书中前三章简单的介绍MySQL为何物,查是mysql中非常重要的功能,4-6章展示了mysql的查(查询——select)的简单实现,my…

    Python 2023年6月9日
    061
  • flask执行python程序_怎么运行flask

    今天,我们学习python web中的flask框架,当然首先是安装flask pip install flask 然后用pycharm打开。新建项目里面的flask,自动创建,代…

    Python 2023年8月13日
    033
  • python实现excel Vlookup功能

    python 如何实现Excel 的Vlookup功能 1、Excel 中VLOOKUP具体步骤 2、Python中使用pandas包中的pd.merge()来实现 1、Excel…

    Python 2023年8月2日
    046
  • Django项目练习(七)——自制视频上传&转码&存入七牛云

    自制视频功能开发 * – 自制视频功能开发需求 – ffmpeg知识 – 一、把视频传到后台 – 二、视频转码(容器转换) &#82…

    Python 2023年8月5日
    047
  • 【C++初阶】C++基础(一)

    C++是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C++学习有一定的帮助,本文主要目标:1. 补充C语言语法的不足,以及C…

    Python 2023年11月9日
    026
  • Python基于Flask框架实现视频直播,电脑桌面录屏web端展示,远程控制电脑

    流媒体原理基本介绍 流媒体是一种技术,其中,服务器以数据块的形式响应请求。 非常大的响应 。对于非常大的响应而言,内存中收集的响应只返回给客户端,这是很低效的。另一种方法是将响应写…

    Python 2023年8月11日
    043
  • 机器学习 拜占庭容错方法: Bulyan

    论文链接: http://proceedings.mlr.press/v80/mhamdi18a/mhamdi18a.pdf SGD存在问题 数据并行的SGD梯度聚合是所有梯度的线…

    Python 2023年10月28日
    036
  • HTML躬行记(3)——WebRTC视频通话

    WebRTC 在创建点对点(P2P)的连接之前,会先通过信令服务器交换两端的 SDP 和 ICE Candidate,取两者的交集,决定最终的音视频参数、传输协议、NAT 打洞方式…

    Python 2023年10月16日
    060
  • 使用蒙特卡罗模拟期权定价

    更多精彩内容, 欢迎关注公众号:数量技术宅,也可添加技术宅 个人微信号:sljsz01,与我交流。 期权是一种合约,它赋予买方在未来某个时间点以特定价格买卖资产的权利。 这些被称为…

    Python 2023年6月3日
    093
  • 震惊!学会了chatgpt,我的全部作业都不用写了

    文章目录 前言 一、不含公式的题目 二、含有公式的题目 * 1、安装 Mathpix 2、打开Mathpix,点击显示器按钮即可对试卷进行截图 3、点击下方红色部分,即可复制截图结…

    Python 2023年11月4日
    026
  • python 图例颜色_使用matplotlib创建超过20种唯一的图例颜色

    你问题的答案与另外两个SO问题有关。 但是,您需要得到正确的颜色列表,这是使用颜色映射最容易完成的,正如对这个问题的回答中所解释的那样:Create a color generat…

    Python 2023年9月6日
    061
  • Django中间件实现操作日志记录

    Django中间件实现操作日志 本文通过Django中间件的流程,实现操作日志记录的功能,模块化、拿来即用。 功能描述:通过中间件记录 &#x8BF7;&#x6C4…

    Python 2023年8月5日
    042
  • 上周热点回顾(9.26-10.2)

    热点随笔: · .Net 7内容汇总(3)–反射优化 (jvx)· 在 WPF 中实现融合效果 (dino.c)· 【程序人生】27岁,又是一个新的起点 (猫咪大王_l…

    Python 2023年10月20日
    031
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球