Python基础入门之[高级数据结构]学习笔记(四)

小甲鱼《零基础入门学习Python》学习笔记 根据老师的建议,现在将第二次复习小甲鱼的《零基础入门学习Python》而做的学习笔记,上传到网上,方便今后复习和保存,因为是手写的,所以做了扫描锐化处理,方便阅读。 ... 阅读详情

目录
一、Python的列表 list [1,“a”]
二、Python的元组 Tuple (1,“a”)
三、Python的字典 dict {k1:v1,k2:v2}
四、Python的集合 set {1,2,“a”}
五、四种数据结构对比
六、四种数据结构函数、方法大全

个人简化的理解
列表 约等于 数组
元组 约等于 不可修改的数组
字典 约等于 键值数组
集合 约等于 不可重复的键

一、Python的列表 list[1,“a”]
列表list有序、可变。可增、删、改其中的数据。
创建空列表:data=[]
创建有值列表:data=[1,2,3,4]

  1. 列表的索引和切片(和字符串类似)
    索引:list[数字下标idx],访问某个元素,idx>=0 and idx<=len(list)-1,idx可以为负数,从最后往前计数。
    切片:list[开始值:结束值:步长],三个参数皆可为负数,原理同字符串切片。
    切片可以重新赋值,可以和之前的长度不一样。(字符串不行)
例1
data=[1,2,'a','b','c']
data[2]="g"
print(data)
输出结果:[1, 2, 'g', 'b', 'c']

例2
data=[1,2,'a','b','c']
data[1:2]=["g","g","g","g"]
print(data)
输出结果:[1, 'g', 'g', 'g', 'g', 'a', 'b', 'c']
  1. 列表的常用方法
    list.append(3),在列表末尾新增一个元素。
    list.extend([4,‘a’,6]),在列表末尾新增一个列表。
    list1 + list2 ,两个列表相加,返回一个新的列表。
    list.clear() ,清空列表中的所有元素。
    len(list) ,返回列表的元素个数
  • 列表的遍历
例1
data=[1,2,'a','b','c']
for i in data:
    print (i)
输出结果:
1
2
a
b
c
例2(重点语句:range(len(data)))
data=[1,2,'a','b','c']
for i in range(len(data)):
    print (i,data[i])
输出结果:
0 1
1 2
2 a
3 b
4 c
例3(重点enumerate关键字)
data=[1,2,'a','b','c']
for i,j in enumerate(data):
    print(i,j)
输出结果:
0 1
1 2
2 a
3 b
4 c
  • 列表的排序
list.reverse(),将整个列表元素翻转。
list.sort(reverse=False),reverse为F时正序排列;为T时倒序排列(sort()中可以为空,默认为正序排列)。
  • 方便的列表推导式
    列表推导式又称列表解析式,提供一种简明扼要的方法来创建列表。
例1:
data=[3,4,50,6,8,1,2,33,11]
data2 = [i*i for i in data if i>10]
#满足条件后执行i*i; for循环遍历序列;条件语句。 
print(data2)
输出结果:[2500, 1089, 121]

例2:
data=[3,4,50,6,8,1,2,33,11]
aa="-".join( [str(i) for i in data] )
print(aa)
输出结果:3-4-50-6-8-1-2-33-11

例3:
fin = open("data.txt")
aa=[i.strip().split("\t")[1] for i in fin if len(i.strip())>0]
print(aa)
fin.close()
先for循环,将txt文档中每行读取出来,判断是否为空行,
如果不是空行,就strip去首尾空格换行,再用"\t"分割,并将第二个元素存放进列表。

二、 Python的元组 Tuple(1,“a”)
一种类似列表的数据序列类型,不可变,不可添加,不可删除,不可修改元素

  • 创建方式:
    创建空元组:tup=()
    创建有值元组:tup=(1,‘a’,‘b’,4)
    创建单个元素元组:tup(5,) 这个要注意创建单个元组时不能省略后面的逗号。
    创建多个元素的元组时,也可省略小括号:tup=1,‘a’,‘b’,4

  • 元组的索引和切片
    元组和列表一样支持索引和切片,但是不能更改元素。
    tup[下标数字idx]
    对元组进行切片,得到的结果还是元组。
    不能对元组中的元素进行赋值。

  • 元组支持的方法
    tuple(list) ,把一个列表变成一个元组
    a,b,c = tup ,把元组中的元素拆包挨个给a,b,c。前后数目要一样多。
    len(tup) ,得到元素的个数
    tup1 + tup2 ,合并两个元组,得到一个新元组
    ‘a’ in tup ,判断元素是否在元组中
    for i in tup: ,用fox循环遍历元组

三、Python的字典 dict{k1:v1,k2:v2}
字典是一种key:value的数据结构,可以根据key设置和获取对应的value。

  • 创建方式
    d = {key1:value1,key2:value2}
    d = {} 创建空字典
    d = {“id”:123,“name”:“xiaoming”,“age”:20}

  • 获取数据
    print(d[“id”],d[“name”])
    如果key值不存在,就会报错。

  • 新增修改数据
    d[“id”]=456
    如果“id”这个key不存在,就新增一对键值
    如果“id”这个key存在,就修改对应value的值
    字典的key不能重复,不能更改。 key可以是数字,字符串,元组,不能是可变的列表。

  • 字典的常用方法
    len(dict) ,字典key:value的对数。
    dict.clear() ,清空字典
    str(dict) ,将整个字典转为字符串形式。
    key in dict ,判断key是否在dict的键中。
    dict.get(key,“bucunzai”) ,获取key的内容,如果key不存在,返回默认值"bucunzai"
    dict1.update(dict2) ,将dict2的所有键值对,加到dict1后面。

例:**字典推导式**
d = {"id":11,"name":"xiaoming","age":22}
bb={i:d[i] for i in d if len(str(d[i]))<3}
print(bb)
  • 字典的遍历
    dict.items() ,以列表返回可遍历的(键,值)元组数组,常常用于for遍历。
    dict.keys() ,以列表返回字典所有的键
    dict.values() ,以列表返回字典所有的值
例1:打印字典的key,换成values也可以。
for i in dict.keys() :
    print(i)

例2:这个因为返回的列表中每队(键,值)是以元组存在的,
所以这里通过i,j两个变量,直接将元组中对应的两个值取出来。(不是特别理解)
d = {"id":11,"name":"xiaoming","age":22}
for i,j in d.items():
    print(i,j)

四、Python的集合 set
集合是一组无序、没有重复元素的key的集合,和字典非常类似。和字典一样,不能通过下标数字的方式访问元素,所以也都不支持切片。
主要用于:去重元素;访问效率高。

  1. 创建方式:
    创建空集合:s = set()
    创建集合:s = {1,2,3,4}
    转换为集合:s = set(列表、元组、字符串)
    创建空集合不能用s = {} ,因为这是创建了一个字典dict。

  2. 集合的常用方法
    len(set) ,取集合的元素个数
    for i in set ,对集合进行遍历
    set.add(key) ,新增一个key,如果有重复会自动去重。这时的key不能为列表等可变的内容。
    set.remove(key) ,删除一个key
    set.clear() ,清空set
    x in set ,判断元素是否在set集合中
    set1.update(set2) ,将set2中所有key添加到set1中,会去重。
    set1 & set2 或者set1.intersection(set2) ,求两个集合的交集(两个集合中都含有的元素)
    set1 | set2 或者set1.union(set2) ,求两个集合的并集(两个集合所有不重复值)
    set1 - set2 或者set1.difference(set2) ,求两个集合的差集(在set1集合中,不在set2集合中的元素)

集合推导式:s = {x for x in “abcd” if x not in “bc”}
这个和字典的推导式很接近,区别在于最前面的问题,一个是X;一个是X:X*X。

五、四种数据结构对比
在这里插入图片描述
六、四种数据结构函数、方法大全

# 个人简化的理解
# 列表 list[1,"a"]          约等于 数组
# 元组 tuple(1,"a")         约等于 不可修改的数组
# 字典 dict{k1:v1,k2:v2}    约等于 键值数组
# 集合 set{1,2,"a"}         约等于 不可重复的键

#-----------------------------------list 列表 [ ]
list1 = [88,99,11,22,33,66,22]
list2 = ["a","ee","b","cc"]
list3 = ["a",99,11,"ee","af"]

#函数
print(len(list1))#取列表元素个数
print(max(list2))#取列表元素中的最大值。元素类型要相同。
print(min(list1))#取列表元素中的最小值。元素类型要相同。
seq = (1,2,3,4)
print(list(seq))#将一个元组转为列表

#方法
list1.append("abc")#在列表1后面添加对象(可以是元素,列表,元组),对象转为1个元素
print(list1)
list1.extend(list2)#在列表1后面添加对象(可以是元素,列表,元组),对象转为多个元素
print(list1)

print(list1.count(22))#统计22在列表中出现的次数
print(list1.index("a",5,10))#在5-8位置中,找到a的位置数,未找到报错。

list1.insert(10,"dddd")#在10的位置插入对象(可以是元素,列表,元组),对象转为1个元素
print(list1)

print(list1.pop(1))#删除指定下标的元素,可以为负数,返回要删除的元素内容
print(list1)
print(list1.remove(88))#删除指定名称的元素,无返回值。
print(list1)

list1.reverse()#将列表元素倒序排列
print(list1)

list2.sort(reverse=True)#对列表进行排序,T降序,F升序。元素类型要相同。
print(list2)

list3.clear()#清空列表
print(list3)

list3 = list2.copy()#复制list2给list3
print(list3)
print()

#-----------------------------------tuple 元组 ( )
tuple1 = ("a","99","11","ee","af")

#函数
#len、max、min  #取元素个数;最大值;最小值(与list相同)
print(tuple(list2))#将列表转化为元组


#-----------------------------------dict 字典 {k1:v1,k2:v2} 
dict1 = {"name":"xiaoming","age":22,"class":"first","china":"明明"}

#函数
#len、max、min  #取元素个数;最大值;最小值(与list相同)
print(str(dict1)) #将字典转为字符串

#方法
#print(dict1.clear())#清空字典所有元素

dict2 = dict1.copy() #对一个字典的浅复制
dict3 = dict1        #dict3对dict1进行了深拷贝[*这样拷贝两个字典值会同步发生变化]
dict3["age"] = 100
print(dict1,dict2,dict3)

list1 = ["cc","dd","ee","ff","hh"]
print(dict2.fromkeys(list1,"AA"))#创建一个新字典dict2,键为tup1,所有健的值为"AA"

print(dict1.get("age","BB"))#取键age的值,如果没有该键就返回"BB"
print(dict1.setdefault("age1","BB"))#取键age的值,如果没有该键就返回"BB",并创建该键

print("name" in dict1)#判断键"name"是否在字典dict1中。

for i,j in dict1.items(): #将字典的键和值以列表的形式返回
    print(i,j)

print(list(dict1.keys()))#以列表的形式返回dict1的所有键
print(list(dict1.values()))#以列表的形式返回dict1的所有值

print(dict1.update(dict2))#将dict2的键值更新至dict1中,如果有重复键,值以dict2为准
print(dict1)

print(dict1.pop("age","CCC"))#删除键age,成功返回该键的值,失败返回CCC
print(dict1.popitem())#删除字典中最后一组键值,返回删除的键值。

#$save
#-----------------------------------set 集合 {1,2,"a"}  
set1 = {1,2,"aa","bb","cc"}
print(set1.add("dd"))#向set1集合中添加[一个]元素,如果已存在,则不添加
print(set1.update(["ee","hh","ab"]))#向set1集合中添加[一组],如果已存在,则不添加,无返回
print(set1)

#print(set1.clear())#删除集合set1中所有元素
set2 = set1.copy()#复制set1给set2

set2 = {7,8.9,10,1,2}
print(set1,set2,set1.difference(set2))#取set1和set2的差集,结果返回新集合
print(set1.difference_update(set2))#取set1和set2的差集,结果返回给set1
print(set1)

print(set1.discard("aa"))#删除set1中指定元素
print(set1)

set1 = {1,2,"aa","bb","cc"}
print(set1,set2,set1.intersection(set2))#取set1和set2的交集,结果返回新集合
print(set1.intersection_update(set2))#取set1和set2的交集,结果返回给set1
print(set1)

set1 = {1,2,"aa","bb","cc"}
set2 = {7,8.9,10,1,2}
print(set1.isdisjoint(set2))#判断两个集合有无相同元素,没有返回真
print(set1.issubset(set2))#判断set1包含set2,包含返回真
print(set1.issuperset(set2))#判断set2包含set1,包含返回真
print(set1.pop())#随机移除set1中的一个元素
print(set1.remove("aa"))#移除set1中的指定元素,如果没有指定元素报错。
print(set1)

print(set1,set2,set1.symmetric_difference(set2))#移除两个集合中都存在的元素,结果返回新集合
print(set1.symmetric_difference_update(set2))#移除两个集合中都存在的元素,结果返回给set1
print(set1)

print(set1.union(set2))#返回两个集合中的所有不重复元素

Python编程入门指南:从基础到高级 Python是一种高级编程语言,它具有简单易学、代码简洁、易维护等特点,因此被广泛应用于科学计算、数据分析、人工智能等领域。Python的语法简洁,代码易于阅读和编写,因此它被广大开发者所喜爱。同时,Python还拥有庞大的社区支持,有大量的开源库和工具,可以帮助开发者快速完成各种任务。在Python编程中,开发者可以使用多种数据结构,如列表、元组、字典等,来存储和处理数据。Python还提供了丰富的函数和模块,可以方便地实现各种复杂的算法和逻辑。 阅读详情

相关推荐

编程小白的第一本Python入门书学习笔记

编程小白的第一本Python入门书学习笔记 最近在学习Python的过程中,发现一本对小白非常友好的入门书-《编程小白的第一本Python入门书》,书中对知识点的讲解很易懂,一些以前不太理解的概念,在看完这本书之后也有眉目了。 这里主要介绍下自己学习时做的一些笔记,如果其中有理解错误的地方,麻烦评论或者私信告知。 有幕布账号的小伙伴也可以去幕布链接 文章目录编程小白的第一本Python入门书学习笔...

Blog of Darer 3791

for i, j in enumerate() 函数解释

numerate就是枚举的意思,把元素一个个列举出来,第一个是什么,第二个是什么,所以他返回的是元素以及对应的索引。 >>> line = [1,2,3,4,5] >>> for i,j in enumerate(line): ... print(i,j) ... 0 1 1 2 2 3 3 4 4 5 ...

weixin_45723915的博客 1万+

Claude Code 完整学习笔记

Claude Code 学习笔记摘要 Claude Code是Anthropic推出的智能编码工具,基于Claude Opus 4.5模型构建,提供跨平台支持(终端/VS Code/JetBrains/Web等)。核心功能包括: 代码库理解与多文件编辑 命令执行与开发工具集成 智能体协作开发流程 安装要求Node.js≥18,提供原生/Homebrew/npm等多种安装方式,支持环境变量配置API访问。基础交互模式包括会话管理、文件操作和代码审查等功能,可自动读写文件并执行精确修改。 (149字)

虚心若愚 812

Python基础 | 关于“循环”那些事

for 循环listrangeenumeratezipwhile 循环while相当于if时while充当for和if的混合体泛循环列表解析map迭代器生成器循环的跳出和继续单层循环嵌套...

lsxxx2011的专栏 358

EPSON RX8010SJ RTC实战:I2C寄存器配置避坑指南(附完整初始化代码)

本文详细解析了EPSON RX8010SJ RTC芯片在I2C寄存器配置中的常见问题与解决方案,包括TEST位、STOP位和中断控制等关键配置要点。通过实战经验分享和完整的初始化代码模板,帮助开发者避免常见陷阱,确保RTC模块的稳定运行。

weixin_28678831的博客 407

CANopen中SDO、PDO字典以及COB-ID理解

CANopen SDO PDO

sunarmy的专栏 2万+

python基础第十章:集合

集合 集合特色:无序,去重 声明一个空集合 变量=set() 声明带有数据的集合 变量=set{值,值,值……} 集合没有增删改查基本操作 集合遍历(只能用 for……in) set1={'孙','志','成','周','梦','迪'}for i in set1: print(i)集合推导式(与列表一样)基本推导式变量={变量 for 变量 in 容器} res...

382

深入解析AMBA5 AXI与ACE协议:从基础到高级应用

本文深入解析了AMBA5 AXI与ACE协议的核心机制与应用。AXI协议通过分离通道、突发传输和乱序完成实现高性能数据传输,而ACE协议在此基础上构建了硬件级缓存一致性解决方案,通过监听机制和状态模型确保多核系统数据统一。文章还探讨了在异构计算等复杂场景下的实战应用与AMBA5的新特性。

cc789的博客 963

【python】 for i,j in enumerate()

for i,j in enumerate()

zoetu 2714

医疗影像技术实战:如何用Python快速生成DRR图像(附完整代码)

本文详细介绍了如何使用Python实现数字重建放射影像的快速生成。通过实战代码,从基础光线投射算法到性能优化,逐步讲解DRR图像生成的核心原理与工程实践,帮助开发者掌握医疗影像处理的关键技术,赋能放射治疗规划与图像引导手术等临床工具开发。

k8l9m0n的博客 72

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

【数据集】中国陆地生态系统通量观测网 ChinaFLUX

WW、forever的博客 193

python实现DBSCAN聚类

该博客配套代码、数据及PPT见百度网盘 链接:https://pan.baidu.com/s/1j1iWnhXmQiAnQ7VnfsCIrQ 提取码:6666 算法实战 数据为31个省份的出生率和死亡率,文件名为Province.xlsx 在密度聚类算法的实战部分,我们将使用国内31个省份的人口出生率和死亡率数据作为分析对象。首先,将数据读入到Python中,并绘制出生率和死亡率数据的散点图,代码如下: import pandas as pd import matplotlib.pyplo.

最初的梦想 1万+

2026全网最新华为OD机试真题目录A+B+C+D+E卷(持续收录中)-Python版

🔔本文收录于「最新最全华为OD机试真题(Python版)」专栏,手把手带你零基础教学华为OD机试。本题集提供最优题解思路,解题步骤,代码解析,复杂度分析及最优题解源码等,支持多语言题解,助你轻松拿捏OD机考,一举上岸!安利大家关注&&收藏&&订阅!题库正在疯狂收录中,up!up!up!! 🚫提醒:拒绝一切代考/替考,违法必究!本人所写题库均精心搜集于互联网。    💗订阅福利:一次订阅,可永久免费阅读,提供在线答疑解惑,后续题库更新皆可阅读使用!

**My Coding Family** 10万+

python数据结构基础的重点内容_Python基础入门之[高级数据结构]学习笔记(四)...

目录一、Python的列表 list [1,“a”]二、Python的元组 Tuple (1,“a”)三、Python的字典 dict {k1:v1,k2:v2}四、Python的集合 set {1,2,“a”}五、四种数据结构对比一、Python的列表 list[1,“a”]列表list有序、可变。可增、删、改其中的数据。创建空列表:data=[]创建有值列表:data=[1...

weixin_39866974的博客 169

如何对EMB电子机械制动器的热衰退问题进行优化

摘要 电子机械制动器(EMB)在新能源汽车和自动驾驶中具有重要应用价值,但其在高强度工况下会出现热衰退现象。本文分析了EMB热衰退的五大机理:摩擦副热效应、电机热衰退、减速机构热失效、温度对控制策略干扰以及结构设计导致的热积累。针对这些问题,提出了从材料、结构、控制三个维度的优化措施:升级耐高温材料、改进散热设计、优化控制算法等。通过"热生成抑制-热传导优化-热失效补偿"的系统方案,可有效改善EMB的热衰退问题,为智能汽车提供更可靠的制动保障。

m0_59012156的博客 342

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Python入门必学:print函数--从基础语法到高级用法

📚 **初识print函数**:从基础语法开始,带你走进Python的print世界,轻松掌握输出字符串和数字的技巧。🖊️ 📘 **进阶print函数**:解锁格式化输出的魅力,使用占位符和f-string让你的输出更加美观和灵活。🎨 📕 **高级用法与技巧**:探索print函数的高级功能,如输出到文件、自定义分隔符和结束符,以及立即刷新输出。🔍 #Python入门 #print函数 #格式化输出 #高级用法 #Python学习之旅

创作高质量博文,分享知识,共同进步! 2619

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python学习笔记 (从入门到进阶)

这是我自己学习Python时所记录的一些学习笔记。之前也看过不少的书,课坚持下去的那本是趣味编程100例,一个老外写的,真心的很棒。之后我要把从入门到实践啃了一遍,算是把知识点好好的整理了一下吧 Python学习笔记第一部分:基础知识一、基础数据类型二、Python的I/O(输入输出)以及强制类型转换三、变量与运算符四、选择判断结构五、数据结构(1)—元组六、数据结构(2)—列表七、数据结构(...

欢迎来到Gorit的博客 4954

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python从基础到高级进阶全阶段

【代码】Python从基础到高级进阶全阶段。

shangzhiqi的博客 1702

python从入门到高级系列_Python编程从入门到高级v1

Python编程从入门到高级1.Python入门简介......................................................................................................................11.1安装Python.............................................

weixin_39976575的博客 116

Python入门指南:从基础到高级

Python是一种高级编程语言,它具有简单易学、代码简洁、易维护等特点,因此被广泛应用于科学计算、数据分析、人工智能等领域。Python的语法简洁,代码易于阅读和编写,因此它被广大开发者所喜爱。同时,Python还拥有庞大的社区支持,有大量的开源库和工具,可以帮助开发者快速完成各种任务。在Python编程中,开发者可以使用多种数据结构,如列表、元组、字典等,来存储和处理数据。Python还提供了丰富的函数和模块,可以方便地实现各种复杂的算法和逻辑。

GLB_0627的博客 858

python基础函数有哪些,python入门函数大全

输入参数:sub:指定的子串start:索引的起始位置。默认值为0。end:索引的结束位置。默认值为字符串长度len(str)。print(str1.rfind('z')) # 结果 6reduce函数在python2中是个内置函数,但在python3中已被移到functools模块。function:指定函数(输入为两个元素)iterable:可迭代对象:初始参数(可选),即指定第一个元素的值,然后与序列的第一个元素执行指定函数。# 常与匿名函数lambda同时使用。

2401_86114424的博客 963

python内置高级数据结构

写作目的 在编程过程,特别是线上编程的过程中,总会需要用到很多高级的数据结构,但是python中的一些高级数据结构并没有那么的“明显”,这里梳理一下。 栈 栈在python中比较好实现,直接用List数据结构就可以代替。add方法用append代替,有内置的pop()方法,时间复杂度O(1),至于peek()方法可以直接用索引-1代替。 myStack=[] myStack.append(1) m...

铁血军的小博客 1万+

Python入门基础,超适合小白学习的教程

在这部分我们介绍了一些Python的基础语法,Python基础语法是我们了解这门语言的基础,比如环境的配置与安装,当然没有编程或者计算机基础的朋友们,在配置和安装的过程中也会遇到一些阻拦,但是只要我们有决心学习了解它,任何的困难我们都是可以克服的。循环的学习可能是第一个比较大的拦路虎,好像我记得我在刚开始学习的时候,也是在这块绕圈绕了很长时间,我的建议就是先循环2次或者3次,接下来分析下循环结构的顺序,循环次数慢慢增多再分析下,如果循环次数再多的也是一样的执行顺序,就是多循环了几次而已。

Trb401012的博客 1154
上一篇: Python基础入门之[字符串 str]学习笔记(三)
下一篇: Python基础入门之[常用函数]学习笔记(持续更新中...)
「已注销」
博客等级 码龄17年 7粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值