- 博客(129)
- 收藏
- 关注
原创 python:列表(遍历循环,冒泡排序,交互两个变量的值,列表排序【sort,sorted】,id(),复制/拷贝【浅拷贝copy(),切片,工厂函数】,【深拷贝copy.deepcopy()】
copy()支持的内置类型为可变对象:列表(List),字典(Dict),集合(Set),字节数组(Bytearray)是列表(list)对象的一个内置方法,用于对列表中的元素进行原地排序(即直接修改原列表,而不返回新列表)。一种完全独立的数据复制方式,它会递归地拷贝对象及其所有嵌套的子对象,生成一个与原对象完全隔离的新对象。第一趟比较结束>>得一个最大的数>>8个数,一共需比较7次(n-1次)>>嵌套循环。(identity)。是 内置函数,会返回一个新的已排序列表,而不修改原始列表。
2025-05-01 11:33:44
310
原创 python:in和not in;格式化输出(f-string);列表(index,count,切片,增加:append,extend,insert;删除:pop,remove,clear,del)
in和not in是 Python 中的成员运算符,用来判断对象在可迭代对象里是否存在in 运算符如果存在则返回True,否则返回False检查某个值(value)是否存在于字典中,使用values()方法,或遍历字典同时检查键和值是否存在于字典中,使用items()方法not in运算符not in是in的反义操作,如果不存在则返回True,否则返回False工作原理当使用in或not in运算符时,Python 会首先尝试调用对象的方法,如果类没有实现。
2025-04-29 20:14:21
1009
原创 python读文件:读文本文件和非文本文件(with,open,read,linecache模块,pillow库,图片处理);写文件(write,flush); 文件对象方法(seek,tell)
读文件读文本文件步骤:1.打开文件 open()2.读取文件read()3.关闭文件 file.close()基础版健壮版如果不关闭文件:文件会一直占用系统资源,可能导致内存泄漏或其他程序无法访问该文件。with 语句with是 Python 提供的的核心语法,用于(如文件、数据库连接、锁等),确保资源使用后,避免内存泄漏或文件锁定问题支持with的对象dst.write(src.read()) 其作用是将源文件 (src) 的所有内容读取出来,并写入到目标文件 (dst) 中。
2025-04-26 15:40:01
833
原创 python字符串(3):字符集/编码(查看修改字符集,乱码);码点和字符的转换(chr和ord),字符串的编码解码函数(encode,decode)
字符集是一个字符的集合,为每个字符分配一个唯一的编号(称为。,解决如何将字符的码点转换为二进制数据(字节序列)。如果程序输出的内容出现乱码,可能是控制台编码不匹配。将一个整数(Unicode 码点)转换为对应的字符。获取一个字符的 Unicode 码点(整数表示)python使用的是Unicode字符集。查看当前文件或项目使用的字符集(编码)(你)在 UTF-8 编码中存储为。例如:Unicode 码点。:Character(字符):Ordinal(序数)字符串编码/解码函数。
2025-04-24 15:20:16
170
原创 python字符串(2):内容分割 ;可迭代对象转为字符串join;修改大小写;填充字符串;移除字符;快捷键
字符串字符串属于不可变数据类型,使用了方法以后原字符串不会被修改,只是生成了新的字符串字符串分割使用split()或splitline()返回列表,使用partition()或rpartition()返回元组。
2025-04-23 18:17:08
563
原创 Pyhon字符串(1):转义字符,\n,\t,r原生字符串,下标/索引,切片,len,find,rfind,index,rindex,判断函数,计数count,替换replace
如果使用两对同样的引号,会报错,系统会把靠近的两个引号匹配成一对,中间有字符串没有被包裹,无法识别。字符串是不可变数据类型,使用了replace方法后,原字符串并没有被改变,只是生成了一个新的字符串。通过下标来修改数据,只适用于list(列表),因为它是可变的数据类型。前面有一个空格,后面也有一个空格,所以换行后会继承这些空格。)等序列类型的内置方法,用于统计某个元素在序列中出现的次数。切片是指从字符串里复制一段指定的内容,生成一个新的字符串。)的内置方法,用于将字符串中的子串替换为新的内容。
2025-04-22 20:07:28
491
原创 python:循环语句 while循环,for遍历循环(range),break,continue,else,嵌套循环(打印矩形、三角形,九九乘法表)
第二次循环:此时count =1, 在while处判断是否<5, ture, 执行print语句,count = count +1 =2。第四次循环:此时count =3, 在while处判断是否<5, ture, 执行print语句,count = count +1 =4。第五次循环:此时count =4, 在while处判断是否<5, ture, 执行print语句,count = count +1 =5。第一行: 外循环 j =1, i=0;第五行: 外循环 j =5, i=0;
2025-04-20 18:43:11
636
原创 python:if条件判断语句;代码调试;pass;猜拳游戏;三元表达式
条件判断语句用于根据不同的条件执行不同的代码块if 语句注意:执行体需要缩进示例注意: input 输出的内容都是字符串,字符串不能和数字进行比较,用int把字符串转成整数类型不把数字18加引号转成字符串的原因是:假如输入的是 12 ,12和18比较,此时比较的不是数字的大小,而是字符编码的大小if ... else 语句二选一的条件判断示例。
2025-04-20 16:02:49
786
原创 python:算术运算符,位运算符,赋值运算符(拆包,复合运算符),比较运算符(ord()函数),逻辑运算符(短路特性),运算符 优先级
在计算机中,负数通常使用补码(two's complement)形式来表示,这是因为补码可以简化计算机中的算术运算,特别是加法和减法。在补码表示法中,负数的表示是通过取其正数形式的反码(one's complement),然后加 1 来得到的。从右往左赋值,‘hello’被赋值给d, d被赋值给c,c 被赋值给b, b被赋值给a。将右侧的值从左侧变量的值中减去,并将结果赋值给左侧变量。将右侧的值加到左侧变量的值上,并将结果赋值给左侧变量。即 = ,将右侧表达式的值赋给左侧的变量。
2025-04-18 16:34:31
836
原创 python入门:不同进制数据的表示方式,转换;数据类型的转换,隐式类型的转换
不同进制数据的表示方式十进制(decimal)默认是十进制,直接书写数字即可,没有特定的前缀二进制(binary)二进制数以0b或0B为前缀,由01两个数字组成使用print打印数字时,是以十进制打印输出的八进制(octal)八进制数以0o或0O为前缀,第一个是数字0,第二个是字母o, 后面由01234567组成十六进制(Hexadecimal)以0x或0X为前缀。第一个是数字0,第二个是字母x, 后面由0~9,a~f 组成d = 0x2a这里的a表示的是10不同进制的转换。
2025-04-17 17:15:13
470
原创 python:查看数据类型type,标识符,print,input
这个函数会暂停程序的执行,等待用户在控制台中输入一些文本,然后按下回车键。回车,此时,控制台输入的信息已经被变量password接收,并且打印password的内容。如果你需要用户输入其他类型的数据(如整数或浮点数),你需要在获取输入后进行相应的类型转换。print的自动补全:想打印某个内容,在后面加 .print , 按回车即可自动补全,在python里面,变量没有数据类型,说变量的数据类型,指的是变量对应的值的数据类型。函数时,要注意处理可能的异常,例如用户输入的数据类型不符合预期。
2025-04-16 14:27:47
283
原创 python入门:交互式编程,代码运行,注释,查看函数定义,变量,退出码,数据类型(数字类型[int,float,complex],字符串类型,布尔类型,列表,元组,集合)
交互式编程Interactive Programming 是一种通过实时输入代码并立即获取反馈的开发方式。直接在终端中运行解释器,而不使用文件名的方式来执行文件。这种交互式的编程环境,也称之为REPL,即读取(Read)输入的内容,执行(Eval)用户输入的指令,打印(Print)执行结果,然后进行循环(Loop),Python支持交互式编程。适用场景:初学者学习语法、调试代码片段或理解编程概念。验证代码,可逐行执行代码,观察变量变化(如数学运算、循环逻辑)缺点:不能保存;难以管理大型项目。
2025-04-15 11:36:13
626
原创 python入门:简单介绍和python和pycharm软件安装/学习网址/pycharm设置(改成中文界面,主题,新建文件)
如果你是完全的新手,之前没有使用过任何代码编辑器,或者你希望从头开始配置PyCharm,那么选择“Skip Import”是合适的。这样做的好处是,你可以在命令行中从任何位置直接运行Python命令,而不需要指定完整的路径。右键>>更多选项>>显示设置>>系统>>系统信息>>高级系统设置>>环境变量>>用户变量>>path>>新建>>把python安装目录粘贴上去。Setting>>Plugins>>输入Chinese>>install>>Apply>>Accept>>重启软件。找到之前安装的插件,显示。
2025-04-11 16:14:19
708
1
原创 Perl 语言的官方入门指南1: 程序运行,安全网,基本语法概述(分号,注释,引号,变量类型[标量$ 数组@ 哈希%], 条件和循环结构[if,while],内置运算符和函数,文件的输入输出)
截至Perl 5.10,它甚至有case/switch语句(拼写为 "given"/"when")。我们已经看到的一些包括 "print"、"sort" 和 "reverse"。其主要特点是易于使用,支持过程式和面向对象(OO)编程,具有强大的内置文本处理支持,并且拥有世界上最令人印象深刻的第三方模块集合之一。"foreach" 关键字实际上是 "for" 关键字的同义词。C 风格的 for 循环在 Perl 中很少需要,因为 Perl 提供了更友好的列表扫描 "foreach" 循环。
2025-03-30 22:46:04
1098
原创 PERL开发环境搭建>>Windows,Linux,Mac OS
开发环境搭建特点perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快借鉴了C/C++, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能没有"源代码保护条款"应用场合开发环境搭建。
2025-03-29 23:33:39
1288
原创 Strawberry perl的下载,查询版本号,配置Path环境变量,查找perl解释器的位置
现在还不能执行成功>>因为之前打开命令提示符时,已经加载了环境变量, 新添加的环境变量还没有被加载进来>>重新打开命令提示符再执行。PATH环境变量是一个包含多个目录路径的列表,系统会在这些目录中查找你输入的命令对应的可执行文件。电脑空白处右键>>显示更多选项>>显示设置>>系统>>系统信息>>高级系统设置>>环境变量。先进入到刚才安装的bin的目录里面去看里面是否有perl的可执行文件(perl.exe)如果还没有配置环境变量>>新建>>复制perl.exe的路径到这里>>确定。
2025-03-29 18:45:22
1293
原创 Visual Studio Code(简称 VS Code)下载与使用教程1(新建文件,语法高亮,快捷键,主题,快捷指令)
支持几乎所有编程语言(Python、JavaScript、Java、C++、Go 等),提供。:内置调试器,可断点调试、变量检查,支持 Node.js、Python、C# 等语言。安装插件(如 ESLint、Docker、REST Client),无限扩展功能。:内置命令行终端(支持 PowerShell、Bash、CMD),无需切换窗口。:HTML/CSS/JavaScript、React、Vue 等框架。:Node.js、Python、PHP、Java 等。Ctrl + K 然后 Ctrl + S。
2025-03-27 22:21:05
932
原创 WinSCP使用教程:(SFTP、SCP、FTP 和 WebDAV)
是一款免费开源的,主要用于在本地计算机与远程服务器之间安全地传输文件,并提供基本的文件管理功能。的全称是(安全外壳协议),它是一种加密的网络协议,用于在不安全的网络(如互联网)中安全地远程访问和管理计算机系统(通常是服务器或网络设备)。支持和,通过加密通道传输文件,避免数据泄露。兼容传统和。
2025-03-26 21:57:46
2055
原创 银行审计项目需要了解:SAP;Teradata;FastExport,oracle,共享无架构,共享磁盘架构,同业银行,国家审计署,1104报表,RWA,FTP,SQL*Loader
Teradata支持行业标准SQL与存储在表中的数据进行交互,除此之外,它提供自己的扩展。光大银行与国有政策性银行(如国家开发银行等)以及国有商业银行(如工商银行、建设银行、农业银行等)保持着密切的合作关系。:涵盖基础财务、股东情况、杠杆率、资本充足率、信用风险、流动性风险、市场风险等方面。它指的是将现实世界中的资产,如房地产、黄金、股票、债券等有形资产,通过代币化的方式在区块链上表示和交易。例如,审计人员可以在平台上完成审计项目的立项、审计组组建、项目进度跟踪、审计报告生成等操作。
2025-03-25 22:24:02
1312
原创 数据开发笔试题2025
6. sql 语言包含的众多语句select、 distinct、from、 join 、 on 、 where . group by. avg,sum.... . having . order by,简述其执行顺序。4.从一张保费收入记录表中,取出2021年每个月每个省份保费收入前三的城市,输出 month, province_name,city_name,保费收入总金额。1.用一条 SQL 语句查询出每门课都大于80分的学生姓名。表名:subject_scores。3.怎么把这样一个数据表。
2025-03-24 12:07:33
576
原创 数据建模流程: 概念模型>>逻辑模型>>物理模型
如“订单”实体中的“客户ID”可以作为外键,引用“客户”实体的主键。如“订单ID”和“产品ID”可以组合成“订单明细”实体的复合键。能够唯一标识实体实例的属性或属性组合,如“客户ID”和“身份证号”都可以作为“客户”实体的候选键。:描述实体的特征或属性,如“客户”实体可能有“客户ID”、“姓名”、“地址”、“电话”等属性。描述实体的特征或属性,如“客户”实体可能有“客户ID”、“姓名”、“地址”、“电话”等属性。实体的唯一标识确保每个实体实例的唯一性, 如“客户ID”可以作为“客户”实体的主键。
2025-03-23 23:03:22
1702
原创 数据模型,数据建模,组件,核心价值,使用,意义
一组由符号,文本组成的集合, 用以准确表达信息景观, 达到有效交流,沟通的目的是发现,分析和确定数据需求的过程,是一种称为数据模型的精确形式表示和传递这些需求实体, 关系, 属性和域。
2025-03-23 20:57:50
371
原创 hive:处理JSON格式(get_json_object()函数),连续登录题型,快速生成表(explode,stack),迭代计算
连续登录题型处理JSON格式Json格式的数据是由键值对组成的数据示例在对非结构化数据进行数据清洗时,先创建一张表存储这类数据将上述的表中Json格式数据进行拆分,拆分成表中的多个字段的值,可以使用Hive函数补充:JSON格式JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(一种广泛使用的网页脚本语言,Script 脚本。
2025-03-22 21:16:51
1033
原创 hive自定义函数>>collect_list和collect_set, explode函数, Lateral View)//行列转换(CONCAT_WS,CASE WHEN,UNION ALL)
源自于英文user-defined function。自定义函数总共有3类,是根据。
2025-03-21 22:10:07
696
原创 hive的基础函数>>日期函数,字符串函数,杂项函数
SHA-2(Secure Hash Algorithm 2)是一系列加密哈希函数,它包括多个不同的变体,如 SHA-224、SHA-256、SHA-384 和 SHA-512,它们分别产生不同长度的哈希值。"Cyclic"(循环)指的是在进行CRC计算时,数据被视为一个大的多项式,而生成多项式(polynomial)是这个多项式的一个因子。-- 需要使用 year(), month(), day(), hour(), minute(), second() 获取。(用于替换匹配到的字符串)。
2025-03-21 10:06:46
1154
原创 Typora 使用教程(标题,段落,字体,列表,区块,代码,脚注,插入图片,表格,目录)
输入中括号[ ]在中括号内输入文字, 在中括号外输入小括号( ), 复制想要跳转的目的地的Markdown代码到小括号里面, 再输入相应的标题格式#, 这里的#和标题之间不能有空格。让网址显示想要的名字, 输入中括号[ ], 在中括号输入想显示的内容, 在中括号外面添加小括号( ), 在小括号里面输入网址。把光标放到表格内, 可以显示表格工具按钮, 第一个可以快速调整表格的行和列 ,后面分别是左对齐,居中对齐, 右对齐。不建议 * 号, 因为输入*号会自动补全, 输入1个 * 得2个 *
2025-03-17 22:56:26
2265
原创 常用技术文档编辑软件:Typora>>新建文件,偏好设置
Markdown编辑器Markdown编辑器是一种软件应用程序,它允许用户使用Markdown语言来编写和格式化文本。Markdown是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML(超文本标记语言)页面。:可以看到文本的最终格式,如Typora。:可以直接编辑Markdown源代码,这种模式下可以更精确地控制格式,如VS Code中的Markdown插件。:在编辑Markdown文本的同时,在旁边的窗口中看到渲染后的HTML效果。
2025-03-17 17:01:47
940
原创 数据开发岗笔试题>>sql(hive) ,excel [2025]
sqlsql字段包含user_id(用户id),credit_id(授信id),credit_time(授信时间yyyy-MM-dd HH:mm:ss),credit_status(授信状态)。字段包含user_id(用户id),loan_id(订单id),credit_id(授信id),loan_time(支用时间yyyy-MM-dd HH:mm:ss),loan_amount(支用金额)。1)查询累积授信总次数、当日授信总次数、当日授信总人数、当日授信但未支用人数。
2025-03-16 16:35:25
1188
原创 沐数科技数据开发岗笔试题2025
与数据库中的主键(Primary Key)有所不同,业务主键(Business Key)是业务层面的唯一标识,通常由业务规则决定,例如,订单号、订单明细号,身份证号等。用户授信表(table_credit):包含用户ID(uid)、授信申请时间(credit_submit_time_local)、授信状态(credit_status)。:在正态分布中,大约68%的数据值落在距离均值一个标准差的范围内,约95%的数据值落在两个标准差的范围内,而约99.7%的数据值落在三个标准差的范围内。
2025-03-15 18:04:08
2240
7
原创 数据开发岗笔试题(2025)
有两张表 orders 和 customers,分别包含order_id、customer_id和 customer_id、customer_name。SQL 中,可以使用 GROUP BY 和 SUM 函数来统计每个产品的总销售额。有一张名为 sales的表,包含id(主键)、product_name(产品名称)、 amount(销售额)。给定一个包含数字的列表[12,45,7,9,30],如何使用Python 快速找到最大值和最小值?表)中没有匹配的记录。如何使用数据透视表统计每个产品的总销售额?
2025-03-11 17:49:27
543
原创 存储过程和自定义函数在银行信贷业务中的应用(oracle)
创建一个全局临时表, 它允许会话(session)在事务中插入数据,并且在事务提交时不会删除这些数据,而是在会话结束时删除。:指定文件所在的目录,必须是数据库中定义的目录别名(DIRECTORY 对象)。对于不符合规则的数据,可以进行清洗和修正。:这是要写入文件的文本内容,通常用于在标题下方添加一条分隔线,以增强报表的可读性。例如,检查客户的年龄是否在合理范围内,贷款金额是否符合规定的上下限等。),这个句柄用于后续的文件操作,例如写入内容或关闭文件。)中逐条读取数据,并将每条记录的信息写入到一个文件中。
2025-03-11 17:02:30
1148
原创 面试:hive的优化, 4个by, 存储过程和自定义函数
答:有用过 Oracle 的自定义函数,其实就是将某些查询或者计算方法封装成一个函数,类似于常用的 substr、replace 这样,可以避免重复开发,简化代码,提高工作的效率。,即对查询结果的所有数据进行排序。答:在plsql中使用exception,在exception中把过程数据记录到错误日志表,然后对主过程的事务做回滚,并且针对异常我们会记录异常的日志,方便后续问题的分析。对数据的ETL过程,对SQL语句进行优化,一些需要重复调用的过程,对数据库进行复杂操作,比如增删改,这些都需要用到存储过程。
2025-03-10 11:44:49
950
原创 DEEPSEEK, 提示语的使用, AI的分类
DEEPSEEK的2种模型类型:通用模型更新时间:2024年12月特点:高效便捷,适用于绝大多数任务,被称为“规范性”任务。类型:推理模型特点:适用于复杂推理和深度分析任务,例如数理逻辑推理和编程代码,这类任务被称为“开放性”任务。联网搜索: 技术:RAG(检索增强生成) 特点:知识库更新至2024年7月提示语即,R1的提示语不需要太明确结果>>适合开放性V3的提示语要越明确越好AL智能体。
2025-03-09 23:24:04
1594
1
原创 数据开发0经验入职: 开发流程梳理>>调研, 需求沟通,采集,存储,ETL,测试,可视化, 项目环境
在日常开发过程中, 通常数仓的表也是分级, 有权限管理>>如果你只负责ETL, 可能只有访问ODS和DWD的权限>>有权限访问, 没有权限增删改, 只能通过取数, 计算逻辑, 再出数。在银行做开发, 不会让你充分了解业务, 只是开发, 因为一些信息比较私密, 不会让开发人员去全权管理, 即给指标, 不会涉及分层,建模等, 这些可能是银行的内部人员/第三方做。项目里面有ETL工程师, 数仓开发工程师,建模开发工程师, Hadoop工程师, 但是在项目里面, 你不一定只做一个岗位的工作,
2025-03-09 15:16:09
1618
原创 面试/数仓:银行项目主题, 五级分类,逾期期数,ODS数据抽取,增量/全量,项目的各个阶段,指标:违约率/逾期率,Finereport ,
银行项目主题银行项目主题主题:客户、产品、交易、合同维度:渠道、地区、时间等贷款总额、应还款本金、应还款利息、实际还款本金、实际还款利息、逾期本金、逾期利息、逾期罚息五级分类正常,损失率 0关注,损失率 0,本金或利息逾期7天内次级,损失率>=20%,本金或利息逾期90 天可疑,损失率>=50%,贷款本金逾期270天以上损失,损失率90%以上, 贷款本金逾期360天以上后三类是不良贷款逾期期数· M0:当前未逾期(或用C表示,取自Current)· M1: 逾期1-30日。
2025-03-08 22:13:07
1206
原创 数据开发面试: 项目介绍示例
基于客户信息系统、贷款信息系统、信用评级系统等各方面数据进行收集、整理、建立数据分析模型。建立贷款五级分类、贷款余额、还款总金额、逾期率、逾期指数等指标,以通过数据可视化工具展示出来,为业务部门进行贷款审 核、贷款数据分析、还款追踪提供数据支持。开发流程:数据抽取:使用DataX工具从中转系统(如合同管理系统、客户关系管理系统)中抽取数据到ODS层(贴源层),进行数据备份。:客户基本信息表、合同基本信息表:客户交易记录表、风险预警记录表数据清洗和转换:在DWD层。
2025-03-08 15:12:00
724
原创 兴业银行数据开发的笔试题及答案(2025)
网关层,负责处理Web通信,通常位于一个或多个Web服务器上,将信息从Web服务器传输到其他服务器. 网关层组件包括用于Kerberos的CGI程序、Internet Server Application Program Interface (ISAPI) 或 Apache Modules (apache_mod)ETL(Extract, Transform, Load)是数据仓库和数据集成过程中常用的一种方法,用于从不同的数据源提取数据,进行清洗、转换,然后将数据加载到目标数据存储中。
2025-03-08 10:22:18
1482
7
原创 数据开发岗位: 面试测试题(2025年)
事务具有原子性,即事务中的操作要么全部成功提交,要么全部失败回滚. 当一条事务由多条语句组成,只要其中任何一条语句因为违反约束或者是其他原因执行失败, 整个事务就会回滚, 之前成功执行的语句结果也会被撤销, 以保证数据的一致性和完整性。D :事务的局部性:在一个数据库事务中,一个会话(或事务)对数据的更改对其他会话是不可见的,直到该事务提交。创建新的数据库对象,如表、索引、视图、触发器等。是一个分析函数,它为结果集中的每个行分配一个唯一的排名,如果两个值相同,则分配相同的排名,并在后续的排名中留下空位。
2025-03-06 22:40:35
1534
原创 DataWorks (数据工厂)介绍
可以流畅地进行数据处理、分析、加工及可视化操作。它是一套基于MaxCompute(原ODPS)的DW(数据仓库)解决方案,它集成了阿里多年的DW实施经验,提供数据集成、数据开发、数据治理、数据分享功能,并为代码开发、调试、发布、运维、监控和管理提供了一个高效、安全的离线数据开发环境。,涵盖API发布、管理、运维、售卖的全生命周期管理,并围绕API提供了权限管理、流量控制、访问控制等服务,帮助您简单、快速、低成本、低风险地实现微服务聚合、前后端分离、系统集成,向合作伙伴、开发者开放功能和数据。
2025-03-03 22:17:05
1363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人