深圳融克迪特科技有限公司 Logo,金融科技,量化交易,软件开发

深圳融克迪特科技有限公司

RONG CREDIT TECHNOLOGY CO., LTD.

基础入门

【Python 系列 第2讲】列表和字典:装下价格与日期

本讲用列表装下一组收盘价、用字典保存单日行情快照,再把多日记录组织成可继续遍历的小样本,帮助初学者在真正开始循环和收益率计算前,先把价格与日期放进清楚、稳定的数据结构里。

2026-04-26 智铨研究 阅读时长 7 分钟

目录

Python · 入门短课

  1. 第 1 讲【Python 系列 第1讲】环境检查:先打印一组收盘价
  2. 第 2 讲【Python 系列 第2讲】列表和字典:装下价格与日期
  3. 第 3 讲【Python 系列 第3讲】for循环:批量计算日收益率
  4. 第 4 讲【Python 系列 第4讲】函数封装:写一个收益率计算器
  5. 第 5 讲【Python 系列 第5讲】条件判断:筛出上涨交易日
  6. 第 6 讲【Python 系列 第6讲】CSV读写:保存再读回价格表
  7. 第 7 讲【Python 系列 第7讲】异常处理:避开空值和除零
  8. 第 8 讲【Python 系列 第8讲】生成一份行情摘要

一、为什么 Python 量化入门的第二步,不是立刻算指标,而是先把价格和日期装进合适容器

很多人刚开始学 Python 做量化练习时,会下意识把注意力放在“我要赶紧算点什么”上,比如收益率、均线、涨跌幅判断。这个冲动并不奇怪,因为结果看起来更像“真正开始分析”。但如果在此之前,你还没有把手上的价格和日期放进一个稳定、清楚、适合继续操作的数据结构里,那么后面的很多计算都会很快变乱。代码会充满零散变量,样本一多就难以维护,稍微想批量处理就会手忙脚乱。

所以 Python 量化入门的第二讲,最重要的不是再多讲一个公式,而是先解决一个更根本的问题:这些小样本到底应该装在哪里。对入门阶段来说,最值得先掌握的两类容器,就是列表和字典。列表负责把一串有顺序的值稳稳装住,字典负责让一条记录带上清楚的字段名。只要这两类结构先吃透,后面很多看似更复杂的动作,都会建立在一个更清晰的基础上。

换句话说,这一讲并不是在讲孤立语法点,而是在建立一种“先把数据装稳,再谈运算”的编程顺序。这个顺序对后面所有量化小练习都很重要。

二、为什么列表特别适合保存一串连续价格,而不是继续用很多散落变量

初学者最常见的一种写法,是把几天价格分别放在 price1price2price3 这样的变量里。刚开始看似简单,因为样本很少,变量也没几个。但这种写法的扩展性极差。只要你想增加到十天、二十天,或者想用循环批量处理,代码就会迅速膨胀。而列表的优势,恰恰在于它天然适合保存一串同类型、带顺序的值。

价格序列尤其适合放进列表里,因为它最重要的信息之一就是先后顺序。你以后无论是取第一天价格、拿相邻两天比较、还是把整串价格交给循环,列表都会显得非常自然。相比之下,一堆散落变量既不利于遍历,也不利于扩展。它们看起来像是在“保存数据”,实际上只是把问题往后推。

所以这一讲里先学会把价格装进列表,本质上是在为后面所有批量操作铺路。你不是只学了一个容器,而是在主动给未来的循环、筛选和函数封装腾出空间。

三、为什么日期也应该先成为一组有顺序的列表,而不是零散附注

价格之外,日期是另一个最容易被初学者低估的部分。很多人一开始会把日期当成“备注信息”,觉得先把价格算出来更重要,日期以后再说。但只要你的数据涉及时间顺序,日期就绝不只是附注。它决定了每一个价格对应的是哪一天,也决定了后面计算和输出是否还能被人读懂。

因此,日期也应该像价格一样,先被装进一个清楚的列表里。这样做的好处非常直接。第一,你能更明确地看到日期和价格是否一一对应。第二,后面如果需要一起输出或者一起遍历,就不会临时再回头拼结构。第三,它会让你更早意识到,量化练习里的“数据”往往不是单独一列数值,而是多个相关信息共同组成的一组样本。

对入门阶段来说,这一点非常值得早点建立。因为后面只要一开始写循环、做筛选或做读写,你就会发现:日期和价格从一开始就各自成组,远比后面再救火式地补上要稳得多。

四、为什么字典适合表达“单条记录”,它和列表解决的是不同层的问题

列表非常适合装一串连续价格,但当你需要表达“某一天的这条记录里有哪些字段”时,字典就会更自然。因为字典的核心价值,不在于顺序,而在于它能用清楚的键名把每个值标识出来。对于一条单日行情来说,这种“带字段名”的表达非常重要。你不会只关心一个裸数字,而是希望明确知道:这个值是日期、是收盘价、还是代码。

这也是为什么字典特别适合用来表示单条记录。你只要看到 dateclosecode 这些键,就会立刻明白这条记录在表达什么,而不需要靠位置去猜。对初学者来说,这种可读性非常重要。因为代码一旦稍微变长,靠位置记忆会越来越不稳,而带字段名的结构更容易保持清晰。

因此,列表和字典不是二选一的关系。列表更像在解决“这一串值怎么按顺序放”,字典则在解决“这一条记录有哪些字段”。只要这两层区别先弄清楚,后面你搭结构时就不会总在两者之间混淆。

五、为什么“列表里装字典”会成为后面很常见的一种形态

当你已经知道列表适合装多条数据,字典适合表达单条记录时,一个非常自然的组合就出现了:列表里装字典。这个结构在入门量化练习里非常常见,也非常值得早点熟悉。因为它恰好把“多条样本”和“单条记录带字段名”这两种需求合到了一起。

比如,一组多日行情样本,每一天都可以用一个字典来表示,然后把这些字典按顺序放进列表。这样一来,你既保留了时间顺序,又保留了每条记录的字段清晰度。后面你做循环时,可以逐条取出字典;你要读某天收盘价时,也能用键名直接访问。对初学者来说,这是一种非常友好的结构,因为它比更复杂的类或表格对象更轻,又比散落变量清楚很多。

从学习路径看,这种结构也很有承上启下的价值。后面你进一步接触 CSV、pandas 时,会发现这些更高级工具并不是把前面的东西推翻,而是在更大规模上接管了类似的问题。先把“列表里装字典”理解透,后面升级会轻松很多。

六、为什么长度一致这件事在这一讲就应该先被当成基本纪律

一旦你把日期和价格分别放进两个列表,一个非常关键的问题就必须被提上来:它们的长度是否一致。很多人会觉得,这种检查是不是太早、太细了。其实一点也不早。因为只要长度不一致,后面不管你做循环、配对还是输出,都会立刻出问题。更麻烦的是,这种错位有时不会马上报错,却会悄悄让结果失真。

所以在这一讲里,把“日期列表长度应该和价格列表一致”当成一条基本纪律,非常有必要。它会让你从很早开始就形成一种数据对齐意识,而不是等后面循环写乱了、结果看着怪了,才回头追原因。量化练习里很多问题,说到底都和对齐有关。当前先在最小样本层面建立这层意识,后面会省很多时间。

这也是为什么看似简单的容器学习,背后其实已经在悄悄引入数据质量的基本观念。你并不是只会定义列表和字典,而是在开始学习如何让它们承载的样本保持可靠。

七、为什么这一讲本质上是在建立“容器选择意识”,而不是背语法

很多人学 Python 容器时,容易把列表和字典当成要背的语法点。可对量化入门来说,更重要的是把它们理解成不同场景下的结构选择。你每次拿到一段小数据,都应该开始问自己:我现在更关心顺序,还是更关心字段名?我在处理的是单条记录,还是多条样本?我后面需要遍历,还是需要按键直接取值?

只要这些问题开始在脑子里自然出现,你对列表和字典的使用就会越来越稳。你不再是“因为教程这么写,所以我这么写”,而是能知道为什么此处应该用列表、为什么那里用字典更清楚。这种容器选择意识,会直接影响后面所有代码的清晰度。尤其在量化这种数据驱动场景里,结构一旦选得顺,后面很多计算会自然很多;结构一旦选乱,后面越写越别扭。

所以这一讲更深的一层,其实是在帮你从背语法,过渡到做结构判断。这个转变非常关键。

八、这一讲为后面的循环、函数和文件读写准备了什么

只要价格和日期已经被装进清楚的容器里,后面的很多步骤就都有了落脚点。循环需要一组可遍历的值,列表正好满足;函数需要一个稳定输入,一组价格列表或一组记录列表都很合适;文件读写时,你也会更容易理解“写出去的其实就是这些结构化样本”。也就是说,这一讲虽然看起来在讲很基础的容器,实际上却给后面整条 Python 入门链路提供了一个共同的输入层。

这也是为什么它值得被单独讲,而不是随手带过。你后面再学 for 循环、收益率函数、CSV 读写、异常处理时,都会隐约回到这里:如果我一开始没有把数据装在合适结构里,后面所有步骤都会变得更笨重。反过来,只要当前这一步走稳,后面很多内容都会显得顺理成章。

因此,这一讲真正的作用,是把数据从“几行零散变量”升级成“后面所有动作都能依托的结构化输入”。

九、为什么这一讲做完后,最好已经形成“结构先于计算”的判断

第 2 讲最值得留下的一层判断,是你开始意识到结构先于计算。也就是说,在真正去算收益率、做筛选、写文件之前,先把数据装进合适的结构里,本身就是一种决定后续效率的关键动作。只要这层判断已经建立,你就不会再把容器选择看成无关紧要的准备工作,而会把它视为后面所有操作的起点。

这种判断很重要,因为很多脚本之所以越写越乱,不是后面的逻辑太难,而是一开始的数据结构就没有站稳。第 2 讲先把这层意识立住,后面的学习会明显顺很多。

十、这一讲也在帮你建立“数据一旦成形,就该能被后续步骤直接接住”的意识

当价格和日期已经被装进列表、字典或列表套字典以后,更理想的状态不是“我会写这几个语法”,而是你已经感觉到这些结构随时可以被后续步骤直接接住。循环可以遍历它们,函数可以接收它们,文件读写可以序列化它们。第 2 讲其实是在帮助你建立这种可承接意识。只要结构一成形,后续步骤就不该再从零搭输入。

这层意识会直接提升你后面对代码结构的敏感度。你会更快看出某份数据到底是不是已经准备好进入下一步处理。

十一、这一讲结束时,最好已经具备怎样的完成感

如果这一讲已经真正站稳,你通常会有一种很明确的完成感:你知道哪些数据适合放进列表,哪些信息更适合放进字典,也知道什么时候该把多条记录组织成“列表里装字典”的形式。更重要的是,你已经能感觉到这些结构不只是语法展示,它们还会让后面的循环、函数和文件读写直接接得上。只要这种承接感已经出现,这一讲就不再只是容器入门,而是真正进入了编程结构思维。

这种完成感很重要,因为它会让你以后更快判断输入层是不是已经准备好。很多后续代码能不能写顺,本质上就取决于这里有没有站稳。

十二、总结

这一讲的重点,不是机械记住列表和字典长什么样,而是先把价格和日期放进适合继续处理的容器里。列表适合承载一串按顺序排列的价格或日期,字典适合表达带字段名的单条记录,而“列表里装字典”则是后面非常常见的多条样本形态。只要你已经开始有意识地区分这些结构的使用场景,这一讲就真正完成了。

十三、系列衔接

本讲是《Python量化入门短课》的第 2 讲,当前主题是《列表和字典:装下价格与日期》。上一讲已经确认了 Python 环境能正常运行,并打印出一组最小收盘价样本。这一讲则把这些零散值真正组织成了可继续处理的数据结构。下一讲会直接在这些结构基础上引入 for 循环,开始批量计算日收益率。

十四、风险揭示与免责声明

风险揭示与免责声明

本页面内容仅用于量化研究与技术交流,旨在展示研究方法与流程,不构成对任何金融产品、证券或衍生品的要约、招揽、推荐或保证。

本文所涉历史数据、回测结果与示例参数不代表未来表现,也不应作为投资决策依据。

市场存在波动、流动性与执行偏差等不确定性,任何策略均可能出现收益波动或阶段性失效。

读者应结合自身风险承受能力进行独立判断,并在必要时咨询持牌专业机构意见。