Python的那些事第五篇:数据结构的艺术与应用
新月人物传记:人物传记之新月篇-CSDN博客

目录
一、列表(List):动态的容器
二、元组(Tuple):不可变的序列
三、字典(Dict):键值对的集合
四、集合(Set):无序的集合
五、数据结构在军事战略中的应用
六、数据结构的艺术:逻辑与效率的结合
七、结语
新月的编程之道:数据结构的艺术与应用
在 25 世纪的星际时代,数据结构是每一位程序员和军事战略家不可或缺的工具。作为一名在编程、人工智能和军事战略领域都取得了卓越成就的女性,我深知数据结构的重要性。数据结构不仅是编程的基础,更是解决复杂问题的关键。在这篇文章中,我将以我的视角,深入探讨 Python 中的四种基本数据结构:列表、元组、字典和集合,并通过具体的示例代码和表格来展示它们的特性和应用。
一、列表(List):动态的容器
(一)创建列表
列表是 Python 中最常用的数据结构之一,它是一种可变的序列,可以存储任意类型的元素。列表的创建非常简单,只需要用方括号 [] 包裹元素即可。
| 创建方式 | 示例代码 | 输出结果 |
|---|---|---|
| 直接使用方括号 | my_list = [1, 2, 3, 'a', 'b'] | [1, 2, 3, 'a', 'b'] |
使用 list() 函数 | my_list = list((1, 2, 3, 'a', 'b')) | [1, 2, 3, 'a', 'b'] |
# 创建列表
my_list = [1, 2, 3, 'a', 'b']
print(my_list) # 输出:[1, 2, 3, 'a', 'b']
(二)索引和切片操作
列表的索引从 0 开始,可以通过索引访问列表中的元素。切片操作则可以获取列表中的一部分元素。
| 操作 | 示例代码 | 输出结果 |
|---|---|---|
| 索引访问 | print(my_list[2]) | 3 |
| 切片操作 | print(my_list[1:4]) | [2, 3, 'a'] |
| 负索引 | print(my_list[-1]) | 'b' |
# 索引和切片操作
print(my_list[2]) # 输出:3
print(my_list[1:4]) # 输出:[2, 3, 'a']
print(my_list[-1]) # 输出:'b'
(三)添加元素
列表是可变的,可以通过 append() 和 insert() 方法添加元素。
| 方法 | 示例代码 | 输出结果 |
|---|---|---|
append() | my_list.append('c') | [1, 2, 3, 'a', 'b', 'c'] |
insert() | my_list.insert(2, 'x') | [1, 2, 'x', 3, 'a', 'b', 'c'] |
# 添加元素
my_list.append('c')
print(my_list) # 输出:[1, 2, 3, 'a', 'b', 'c']
my_list.insert(2, 'x')
print(my_list) # 输出:[1, 2, 'x', 3, 'a', 'b', 'c']
(四)删除元素
列表中的元素可以通过 remove() 和 pop() 方法删除。
| 方法 | 示例代码 | 输出结果 |
|---|---|---|
remove() | my_list.remove('a') | [1, 2, 'x', 3, 'b', 'c'] |
pop() | my_list.pop(2) | [1, 2, 3, 'b', 'c'] |
# 删除元素
my_list.remove('a')
print(my_list) # 输出:[1, 2, 'x', 3, 'b', 'c']
my_list.pop(2)
print(my_list) # 输出:[1, 2, 3, 'b', 'c']
(五)列表推导式
列表推导式是一种简洁的方式来创建列表,它可以根据一个表达式生成新的列表。
| 示例代码 | 输出结果 |
|---|---|
[x**2 for x in range(10)] | [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] |
[x for x in range(10) if x % 2 == 0] | [0, 2, 4, 6, 8] |
# 列表推导式
squares = [x**2 for x in range(10)]
print(squares) # 输出:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
evens = [x for x in range(10) if x % 2 == 0]
print(evens) # 输出:[0, 2, 4, 6, 8]
(六)排序
列表可以通过 sort() 方法原地排序,也可以通过 sorted() 函数返回一个新的排序后的列表。
| 方法 | 示例代码 | 输出结果 |
|---|---|---|
sort() | my_list = [3, 1, 2]; my_list.sort() | [1, 2, 3] |
sorted() | my_list = [3, 1, 2]; sorted_list = sorted(my_list) | [1, 2, 3] |
# 排序
my_list = [3, 1, 2]
my_list.sort()
print(my_list) # 输出:[1, 2, 3]my_list = [3, 1, 2]
sorted_list = sorted(my_list)
print(sorted_list) # 输出:[1, 2, 3]
二、元组(Tuple):不可变的序列
(一)创建元组
元组是一种不可变的序列,一旦创建就不能修改。元组的创建方式与列表类似,但使用圆括号 ()。
| 创建方式 | 示例代码 | 输出结果 |
|---|---|---|
| 直接使用圆括号 | my_tuple = (1, 2, 3, 'a', 'b') | (1, 2, 3, 'a', 'b') |
使用 tuple() 函数 | my_tuple = tuple([1, 2, 3, 'a', 'b']) | (1, 2, 3, 'a', 'b') |
# 创建元组
my_tuple = (1, 2, 3, 'a', 'b')
print(my_tuple) # 输出:(1, 2, 3, 'a', 'b')
(二)索引和切片操作
元组的索引和切片操作与列表类似,但由于元组不可变,因此不能修改其中的元素。
| 操作 | 示例代码 | 输出结果 |
|---|---|---|
| 索引访问 | print(my_tuple[2]) | 3 |
| 切片操作 | print(my_tuple[1:4]) | (2, 3, 'a') |
# 索引和切片操作
print(my_tuple[2]) # 输出:3
print(my_tuple[1:4]) # 输出:(2, 3, 'a')
(三)不可变性
元组的不可变性使其在某些场景下非常有用,例如作为字典的键或存储不可变数据。
# 不可变性
try:my_tuple[2] = 'x'
except TypeError as e:print(e) # 输出:'tuple' object does not support item assignment
三、字典(Dict):键值对的集合
(一)创建字典
字典是一种键值对的集合,键必须是不可变类型,而值可以是任意类型。字典的创建方式有多种。
| 创建方式 | 示例代码 | 输出结果 |
|---|---|---|
| 直接使用大括号 | my_dict = {'a': 1, 'b': 2, 'c': 3} | {'a': 1, 'b': 2, 'c': 3} |
使用 dict() 函数 | my_dict = dict([('a', 1), ('b', 2), ('c', 3)]) | {'a': 1, 'b': 2, 'c': 3} |
# 创建字典
my_dict = {'a': 1, 'b': 2, 'c': 3}
print(my_dict) # 输出:{'a': 1, 'b': 2, 'c': 3}
(二)键值对操作
字典可以通过键访问、添加、删除和修改值。
| 操作 | 示例代码 | 输出结果 |
|---|---|---|
| 访问值 | print(my_dict['a']) | 1 |
| 添加键值对 | my_dict['d'] = 4 | {'a': 1, 'b': 2, 'c': 3, 'd': 4} |
| 删除键值对 | del my_dict['b'] | {'a': 1, 'c': 3, 'd': 4} |
| 修改值 | my_dict['a'] = 10 | {'a': 10, 'c': 3, 'd': 4} |
# 键值对操作
print(my_dict['a']) # 输出:1
my_dict['d'] = 4
print(my_dict) # 输出:{'a': 1, 'b': 2, 'c': 3, 'd': 4}
del my_dict['b']
print(my_dict) # 输出:{'a': 1, 'c': 3, 'd': 4}
my_dict['a'] = 10
print(my_dict) # 输出:{'a': 10, 'c': 3, 'd': 4}
(三)遍历字典
字典可以通过 keys()、values() 和 items() 方法进行遍历。
| 方法 | 示例代码 | 输出结果 |
|---|---|---|
keys() | for key in my_dict.keys(): print(key) | a c d |
values() | for value in my_dict.values(): print(value) | 10 3 4 |
items() | for key, value in my_dict.items(): print(key, value) | a 10 c 3 d 4 |
# 遍历字典
for key in my_dict.keys():print(key) # 输出:a c d
for value in my_dict.values():print(value) # 输出:10 3 4
for key, value in my_dict.items():print(key, value) # 输出:a 10 c 3 d 4
四、集合(Set):无序的集合
(一)创建集合
集合是一种无序的集合,其中的元素是唯一的。集合的创建方式有多种。
| 创建方式 | 示例代码 | 输出结果 |
|---|---|---|
| 直接使用大括号 | my_set = {1, 2, 3, 'a', 'b'} | {1, 2, 3, 'a', 'b'} |
使用 set() 函数 | my_set = set([1, 2, 3, 'a', 'b']) | {1, 2, 3, 'a', 'b'} |
# 创建集合
my_set = {1, 2, 3, 'a', 'b'}
print(my_set) # 输出:{1, 2, 3, 'a', 'b'}
(二)添加元素
集合可以通过 add() 方法添加元素。
| 方法 | 示例代码 | 输出结果 |
|---|---|---|
add() | my_set.add('c') | {1, 2, 3, 'a', 'b', 'c'} |
# 添加元素
my_set.add('c')
print(my_set) # 输出:{1, 2, 3, 'a', 'b', 'c'}
(三)删除元素
集合中的元素可以通过 remove() 和 discard() 方法删除。
| 方法 | 示例代码 | 输出结果 |
|---|---|---|
remove() | my_set.remove('a') | {1, 2, 3, 'b', 'c'} |
discard() | my_set.discard('b') | {1, 2, 3, 'c'} |
# 删除元素
my_set.remove('a')
print(my_set) # 输出:{1, 2, 3, 'b', 'c'}
my_set.discard('b')
print(my_set) # 输出:{1, 2, 3, 'c'}
(四)集合运算
集合支持并集、交集和差集运算。
| 运算 | 示例代码 | 输出结果 | |
|---|---|---|---|
| 并集 | `set1 = {1, 2, 3}; set2 = {3, 4, 5}; print(set1 | set2)` | {1, 2, 3, 4, 5} |
| 交集 | set1 = {1, 2, 3}; set2 = {3, 4, 5}; print(set1 & set2) | {3} | |
| 差集 | set1 = {1, 2, 3}; set2 = {3, 4, 5}; print(set1 - set2) | {1, 2} |
# 集合运算
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # 输出:{1, 2, 3, 4, 5}
print(set1 & set2) # 输出:{3}
print(set1 - set2) # 输出:{1, 2}
五、数据结构在军事战略中的应用
作为一名军事战略家,我深知数据结构在实际应用中的重要性。在星际战争中,数据结构可以帮助我们高效地管理和分析情报,优化战术部署,甚至预测敌人的行动。
(一)列表的应用
在军事行动中,列表可以用来存储和管理任务列表、士兵名单或装备清单。例如,我们可以使用列表来存储任务的优先级和状态。
# 任务列表
tasks = [{"name": "侦察敌方基地", "priority": 1, "status": "未完成"},{"name": "部署防御系统", "priority": 2, "status": "进行中"},{"name": "攻击敌方补给线", "priority": 3, "status": "已完成"}
]# 添加任务
tasks.append({"name": "支援友军", "priority": 4, "status": "未完成"})# 删除任务
tasks.pop(2)# 排序任务
tasks.sort(key=lambda x: x["priority"])
print(tasks)
(二)元组的应用
元组的不可变性使其非常适合存储固定的数据,例如坐标点、武器参数或士兵的身份信息。在星际战争中,我们可以使用元组来存储星球的坐标。
# 星球坐标
planet_coordinates = (123.45, 678.90, 345.67)# 访问坐标
print(f"X: {planet_coordinates[0]}, Y: {planet_coordinates[1]}, Z: {planet_coordinates[2]}")
(三)字典的应用
字典的键值对结构非常适合存储和查询复杂的数据,例如敌方单位的属性、资源分布或战术计划。在军事行动中,我们可以使用字典来存储敌方单位的信息。
# 敌方单位信息
enemy_units = {"坦克": {"health": 1000, "armor": 500, "damage": 200},"战斗机": {"health": 500, "armor": 200, "damage": 150},"步兵": {"health": 100, "armor": 50, "damage": 50}
}# 查询坦克的属性
print(enemy_units["坦克"])
(四)集合的应用
集合的唯一性和无序性使其非常适合处理去重和集合运算。在军事行动中,我们可以使用集合来管理友军和敌军的单位,以便快速进行交集、并集和差集运算。
# 友军单位
friendly_units = {"坦克", "战斗机", "步兵"}# 敌军单位
enemy_units = {"坦克", "战斗机", "战舰"}# 交集(双方都有的单位)
print(friendly_units & enemy_units) # 输出:{'坦克', '战斗机'}# 并集(双方所有单位)
print(friendly_units | enemy_units) # 输出:{'坦克', '战斗机', '步兵', '战舰'}# 差集(友军独有的单位)
print(friendly_units - enemy_units) # 输出:{'步兵'}
六、数据结构的艺术:逻辑与效率的结合
作为一名程序员,我认为数据结构不仅是一种技术,更是一种艺术。它能够将复杂的逻辑简化为优雅的代码,同时提高系统的效率和可维护性。在编程中,选择合适的数据结构是解决问题的关键。
(一)列表与元组的选择
列表和元组在功能上有一定的重叠,但在实际应用中,它们各有优势。列表是可变的,适合存储动态变化的数据;元组是不可变的,适合存储固定的数据。在选择时,我们需要根据具体需求来决定使用哪种数据结构。
(二)字典与集合的选择
字典和集合都基于哈希表实现,具有高效的查找性能。字典适合存储键值对数据,而集合适合存储唯一的数据。在实际应用中,我们可以根据数据的特点和操作需求来选择合适的数据结构。
(三)数据结构的组合使用
在复杂的系统中,我们常常需要组合使用多种数据结构。例如,我们可以使用字典来存储任务的详细信息,同时使用列表来管理任务的顺序。
# 任务管理
tasks = [{"name": "侦察敌方基地", "priority": 1, "status": "未完成"},{"name": "部署防御系统", "priority": 2, "status": "进行中"},{"name": "攻击敌方补给线", "priority": 3, "status": "已完成"}
]# 任务字典
task_dict = {task["name"]: task for task in tasks}# 查询任务
print(task_dict["侦察敌方基地"])
七、结语
数据结构是编程的基础,也是解决复杂问题的关键。在 25 世纪的星际时代,数据结构在军事战略中的应用尤为重要。通过合理选择和组合使用数据结构,我们可以提高系统的效率和可维护性,为未来的星际战争做好准备。
相关文章:
Python的那些事第五篇:数据结构的艺术与应用
新月人物传记:人物传记之新月篇-CSDN博客 目录 一、列表(List):动态的容器 二、元组(Tuple):不可变的序列 三、字典(Dict):键值对的集合 四、集合…...
Linux:线程池和单例模式
一、普通线程池 1.1 线程池概念 线程池:一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价&…...
【算法-位运算】位运算遍历 LogTick 算法
文章目录 1. 引入2. LogTick 优化遍历过程3. 题目3.1 LeetCode3097 或值至少为 K 的最短子数组 II3.2 LeetCode2411 按位或最大的最小子数组长度3.3 LeetCode3209 子数组按位与值为 K 的数目3.4 LeetCode3171 找到按位或最接近 K 的子数组3.5 LeetCode1521 找到最接近目标值的函…...
【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互
Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…...
Python的那些事第九篇:从单继承到多继承的奇妙之旅
Python 继承:从单继承到多继承的奇妙之旅 目录 Python 继承:从单继承到多继承的奇妙之旅 一、引言 二、继承的概念与语法 三、单继承 四、多继承 五、综合代码示例 六、总结 一、引言 在编程的世界里,继承就像是一场神奇的魔法&#…...
Excel to form ?一键导入微软表单
一句话痛点 “你的Excel越强大,手动复制到Forms就越痛苦。” 合并单元格崩溃成乱码、下拉菜单变纯文本、条件逻辑消失无踪——这些不是技术问题,而是低效工作模式的死刑判决书。 直击解决方案:3分钟,3步,300%效率 1…...
pandas(三)Series使用
一、Series基础使用 import pandasd {x:100,y:200,z:300} s1 pandas.Series(d) #将dict转化为Series print(s1)print("") l1 [1, 2, 3] l2 [a, b, c] s2 pandas.Series(l1, indexl2) #list转为Series print(s2)print("") s3 pandas.Series([11…...
Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)
文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、使用Chatbox进行交互5.1 下载Chatbox安装包…...
从零开始学 HTML:构建网页的基本框架与技巧
系列文章目录 01-从零开始学 HTML:构建网页的基本框架与技巧 文章目录 系列文章目录前言一、HTML 文档的基本框架1.1 <!DOCTYPE html>、<html>、<head>、<body> 标签解析1.1.1 <!DOCTYPE html> 标签1.1.2 <html> 标签1.1.3 &l…...
如何用微信小程序写春联
生活没有模板,只需心灯一盏。 如果笑能让你释然,那就开怀一笑;如果哭能让你减压,那就让泪水流下来。如果沉默是金,那就不用解释;如果放下能更好地前行,就别再扛着。 一、引入 Vant UI 1、通过 npm 安装 npm i @vant/weapp -S --production 2、修改 app.json …...
2025最新在线模型转换工具onnx转换ncnn,mnn,tengine等
文章目录 引言最新网址地点一、模型转换1. 框架转换全景图2. 安全的模型转换3. 网站全景图 二、转换说明三、模型转换流程图四、感谢 引言 在yolov5,yolov8,yolov11等等模型转换的领域中,时间成本常常是开发者头疼的问题。最近发现一个超棒的…...
算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)
在算法竞赛与日常编程中,前缀和是一种极为实用的预处理技巧,能显著提升处理区间和问题的效率。今天,我们就来深入剖析一维前缀和与二维前缀和这两个经典模板。 一、【模板】一维前缀和 题目描述 给定一个长度为 n n n 的整数数组 a a a&…...
C++泛型编程指南03-CTAD
文章目录 C17 自定义类型推断指引(CTAD)深度解析一、基础概念1. 核心作用2. 工作原理 二、标准库中的 CTAD 应用1. 容器类型推导2. 智能指针推导3. 元组类型推导 三、自定义推导指引语法1. 基本语法结构2. 典型应用场景 四、推导指引设计模式1. 迭代器范…...
记8(高级API实现手写数字识别
目录 1、Keras:2、Sequential模型:2.1、建立Sequential模型:modeltf.keras.Sequential()2.2、添加层:model.add(tf.keras.layers.层)2.3、查看摘要:model.summary()2.4、配置训练方法:model.compile(loss,o…...
88.[4]攻防世界 web php_rce
之前做过,回顾(看了眼之前的wp,跟没做过一样) 属于远程命令执行漏洞 在 PHP 里,system()、exec()、shell_exec()、反引号()等都可用于执行系统命令。 直接访问index.php没效果 index.php?sindex/think\a…...
23.Word:小王-制作公司战略规划文档❗【5】
目录 NO1.2.3.4 NO5.6 NO7.8.9 NO10.11 NO12 NO13.14 NO1.2.3.4 布局→页面设置对话框→纸张:纸张大小:宽度/高度→页边距:上下左右→版式:页眉页脚→文档网格:勾选只指定行网格✔→ 每页:…...
在Arm芯片苹果Mac系统上通过homebrew安装多版本mysql并解决各种报错,感谢deepseek帮助解决部分问题
背景: 1.苹果设备上安装mysql,随着苹果芯片的推出,很多地方都变得不一样了。 2.很多时候为了老项目能运行,我们需要能安装mysql5.7或者mysql8.0或者mysql8.2.虽然本文编写时最新的默认mysql已经是9.2版本。 安装步骤 1.执行hom…...
C++【iostream】数据库的部分函数功能介绍
在 C 编程世界中,iostream 库扮演着举足轻重的角色,它是 C 标准库的核心组成部分,为程序提供了强大的输入输出功能。无论是简单的控制台交互,还是复杂的文件操作,iostream 库都能提供便捷高效的解决方案。本文将深入剖…...
数据结构 树1
目录 前言 一,树的引论 二,二叉树 三,二叉树的详细理解 四,二叉搜索树 五,二分法与二叉搜索树的效率 六,二叉搜索树的实现 七,查找最大值和最小值 指针传递 vs 传引用 为什么指针按值传递不会修…...
【实战篇章】深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据
文章目录 深入探讨:服务器如何响应前端请求及后端如何查看前端提交的数据一、服务器如何响应前端请求HTTP 请求生命周期全解析1.前端发起 HTTP 请求(关键细节强化版)2. 服务器接收请求(深度优化版) 二、后端如何查看前…...
玩转ChatGPT:DeepSeek测评(科研思路梳理)
一、写在前面 DeepSeek-R1出圈了,把OpenAI的o3-mini模型都提前逼上线了(还免费使用)。 都号称擅长深度推理,那么对于科研牛马的帮助有多大呢? 我连夜试一试。 二、科研思路梳理 有时候我们牛马们做了一堆结果以后&…...
python学opencv|读取图像(五十三)原理探索:使用cv.matchTemplate()函数实现最佳图像匹配
【1】引言 前序学习进程中,已经探索了使用cv.matchTemplate()函数实现最佳图像匹配的技巧,并且成功对两个目标进行了匹配。 相关文章链接为:python学opencv|读取图像(五十二)使用cv.matchTemplate()函数实现最佳图像…...
AJAX RSS Reader:技术解析与应用场景
AJAX RSS Reader:技术解析与应用场景 引言 随着互联网的快速发展,信息量呈爆炸式增长。为了方便用户快速获取感兴趣的信息,RSS(Really Simple Syndication)技术应运而生。AJAX RSS Reader作为一种基于AJAX技术的信息读取工具,在用户体验和信息获取方面具有显著优势。本…...
Linux环境下的Java项目部署技巧:安装 Mysql
查看 myslq 是否安装: rpm -qa|grep mysql 如果已经安装,可执行命令来删除软件包: rpm -e --nodeps 包名 下载 repo 源: http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 执行命令安装 rpm 源(根据下载的…...
gitea - fatal: Authentication failed
文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…...
计算机网络安全与运维的关键 —— 常用端口全解析
目录 前言 常见端口分类及用途 20 端口(FTP 数据传输) 21 端口(FTP 消息控制) 22 端口(SSH) 23 端口(Telnet) 25 端口(SMTP) 53 端口(DNS&…...
JavaScript Navigator:深入理解浏览器导航机制
JavaScript Navigator:深入理解浏览器导航机制 引言 在Web开发中,浏览器导航是用户与网页交互的重要部分。JavaScript Navigator对象提供了丰富的API,允许开发者深入理解并控制浏览器的导航行为。本文将详细介绍JavaScript Navigator对象的功能、使用方法以及在实际开发中…...
笔灵ai写作技术浅析(三):深度学习
笔灵AI写作的深度学习技术主要基于Transformer架构,尤其是GPT(Generative Pre-trained Transformer)系列模型。 1. Transformer架构 Transformer架构由Vaswani等人在2017年提出,是GPT系列模型的基础。它摒弃了传统的循环神经网络(RNN)和卷积神经网络(CNN),完全依赖自…...
Linux-CentOS的yum源
1、什么是yum yum是CentOS的软件仓库管理工具。 2、yum的仓库 2.1、yum的远程仓库源 2.1.1、国内仓库 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等) 阿里源:https://opsx.alibaba.com/mirror 网易源:http://mirrors.1…...
< OS 有关> BaiduPCS-Go 程序的 菜单脚本 Script: BaiduPCS-Go.Menu.sh (bdgo.sh)
目标: 使用 日本阿里云的 VPM 传输文件。 暂时方案: 使用 主机JPN 下载 https://huggingface.co/ 上模型从 JPN 放到 度狗上在家里从狗度下载 为了减少编程,尽量使用现在软件 ,就找到 GitHub - qjfoidnh/BaiduPCS-Go: iikira…...
