news 2026/7/22 5:51:11

Python从入门到实战之数据结构篇

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python从入门到实战之数据结构篇

我是栗子——专为小白准备《Python从入门到实战》内容。

这不是上一期刚讲完循环判断,还给大家出了很多新手的题目,边学边练习才有效果嘛。

时隔几天,大家都吼完了叭~实在没写完的慢慢复习,我更新文章也挺慢的!哈哈哈哈

今天想一想:要学数据结构啦~

一、Python有那几种数据结构?

Python 有四种数据结构,分别是:列表、字典、元组,集合。每种数据结构都有自己的特点,并且都有着独到的用处。为了避免过早地陷入细枝末节。

我们先从整体上来认识一下这四种数据结构:从最容易识别的特征上来说,列表中的元素使用方括号扩起来,字典和集合是花括号,而元组则是圆括号。其中字典中的元素是均带有‘:'的 key 与 value 的对应关系组。

1)列表(list)

1.1 什么是列表?

最显著的特征是:

  • 列表中的每一个元素都是可变的;
  • 列表中的元素是有序的,也就是说每一个元素都有一个位置;
  • 列表可以容纳 Python 中的任何对象。

列表中的元素是可变的,这意味着我们可以在列表中添加、删除和修改元素。

输入:

1

2

Weekday=['Monday','Tuesday','Wednesday','Thursday','Friday']

print(Weekday[0])

第三个特征是列表可以装入 Python 中所有的对象,往下看:

1

2

3

4

5

6

7

8

9

10

all_in_list=[

1,#整数

1.0,#浮点数

'a word',#字符串

print(1),#函数

True,#布尔值

[1,2],#列表中套列表

(1,2),#元组

{'key':'value'}#字典

]

1.2列表的增删改查

对于数据的操作,最常见的是增删改查这四类。从列表的插入方法开始,输入:

1

2

3

fruit=['pineapple','pear']

fruit.insert(1,'grape')

print(fruit)

在使用insert方法的时候,必须指定在列表中要插入新的元素的位置,插入元素的实际位置是在指定位置元素之前的位置,如果指定插入的位置在列表中不存在,实际上也就是超出指定列表长度,那么这个元素一定会被放在列表的最后位置。

  • 其他方法达到“插入”的效果:

1

2

fruit[0:0]=['Orange']

print(fruit)

  • 删除列表中元素的方法是使用 remove():

1

2

3

fruit=['pinapple','pear','grape']

fruit.remove('grape')

print(fruit)

  • 替换修改其中的元素:

1

fruit[0]='Grapefruit'

  • 删除还有一种方法,那就是使用 del 关键字来声明:

1

2

delfruit[0:2]

print(fruit)

2)字典(Dictionary)

2.1 什么是字典?

字典这种数据结构的特征也正如现实世界中的字典一样,使用名称-内容进行数据的构建,在 Python 中分别对应着键(key)-值(value),习惯上称之为键值对。

字典的特征总结如下:

  • 字典中数据必须是以键值对的形式出现的;
  • 逻辑上讲,键是不能重复的,而值可以重复;
  • 字典中的键(key)是不可变的,也就是无法修改的;而值(value)是可变的,可修改的,可以是任何对象。

举个小栗子:

1

2

3

4

5

6

7

这是字典的书写方式:

NASDAQ_code={

'BIDU':'Baidu',

'SINA':'Sina',

'YOKU':'Youku'

}

一个字典中键与值并不能脱离对方而存在,如果你写成{'BIDU':}会引发语法错误。

记住这两个特征: key 和 value 是一一对应的,key 是不可变的。

同时字典中的键值不会有重复,即便你这么做,相同的键值也只能出现一次:

1

2

a={'key':123,'key':123}

print(a)

2.2 字典的增删改查

首先我们按照映射关系创建一个字典:

1

NASDAQ_code={'BIDU':'Baidu','SINA':'Sina'}

与列表不同的是,字典并没有一个可以往里面添加单一元素的“方法”,但是我们可以通过这种方式进行添加:

1

2

NASDAQ_code['YOKU']='Youku'

print(NASDAQ_code)

列表中有用来添加多个元素的方法 extend() ,在字典中也有对应的添加多个元素的方法update()

1

NASDAQ_code.update({'FB':'Facebook','TSLA':'Tesla'})

删除字典中的元素则使用del方法:

1

delNASDAQ_code['FB']

需要注意的是,虽说字典是使用的花括号,在索引内容的时候仍旧使用的是和列表一样的方括号进行索引,只不过在括号中放入的一定是——字典中的键,也就是说需要通过键来索引值:

1

NASDAQ_code['TSLA']

同时,字典是不能够切片的,也就是说下面这样的写法应用在字典上是错误的:

1

chart[1:4]# WRONG!

3)元组(Tuple)

元组其实可以理解成一个稳固版的列表,因为元组是不可修改的,因此在列表中的存在的方法均不可以使用在元组上,但是元组是可以被查看索引的,方式就和列表一样:

1

2

letters=('a','b','c','d','e','f','g')

letter[0]

4)集合(Set)

4.1什么是集合?

每一个集合中的元素是无序的、不重复的任意对象,我们可以通过集合去判断数据的从属关系,有时还可以通过集合把数据结构中重复的元素减掉。

集合不能被切片也不能被索引,除了做集合运算之外,集合元素可以被添加还有删除:

1

2

3

a_set={1,2,3,4}

a_set.add(5)

a_set.discard(5)

5)番外——数据结构的一些技巧

5.1多重循环

举个栗子:比如,在整理表格或者文件的时候会按照字母或者日期进行排序,在 Python 中也存在类似的功能。

1

2

num_list=[6,2,7,4,1,3,5]

print(sorted(num_list))

sorted函数按照长短、大小、英文字母的顺序给每个列表中的元素进行排序。这个函数会经常在数据的展示中使用,其中有一个非常重要的地方,sorted函数并不会改变列表本身,你可以把它理解成是先将列表进行复制,然后再进行顺序的整理。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/22 5:47:54

Claude Fable 5代码生成AI模型:技术解析与编程实战指南

最近在AI开发领域,Claude Fable 5的访问期限延长至7月19日的消息引起了广泛关注。作为Anthropic推出的重要模型版本,这次延期为开发者提供了更多测试和集成的时间窗口。本文将全面解析Claude Fable 5的技术特性、安装部署方案以及在实际开发中的应用实践…

作者头像 李华
网站建设 2026/7/22 5:47:33

2026.7.21实习日记

Vue 前端培训实习日记一、今日学习主题本次全天集中开展 Vue3Element Plus 前端系统化培训,覆盖 Vue 内置动画、组件缓存、弹窗挂载、单文件组件规范、CSS 全套知识、Flex 弹性布局、企业项目技术栈规范、AI 编程工具使用规范,同时结合真实业务页面案例实…

作者头像 李华
网站建设 2026/7/22 5:47:18

边界监督在离线强化学习中的安全优化实践

1. 项目概述:边界监督在离线安全强化学习中的应用2025年NIPS会议这篇论文提出的"Boundary to region supervision"方法,正在重塑离线强化学习的安全边界设计范式。传统离线RL面临的最大挑战在于:如何在缺乏环境交互的情况下&#x…

作者头像 李华
网站建设 2026/7/22 5:44:07

C++装饰器模式详解:动态扩展对象功能的瑞士军刀

1. 项目概述:为什么装饰器模式是C开发者的“瑞士军刀”?在C的日常开发中,我们常常会遇到一个经典困境:一个核心类功能稳定、逻辑清晰,但需求却像春天的野草一样不断生长。今天产品经理说需要给这个类加个日志功能&…

作者头像 李华
网站建设 2026/7/22 5:44:01

POCO C++ Libraries:构建高效网络服务的模块化C++工具集

1. 项目概述:为什么你需要关注POCO C Libraries?如果你是一名C开发者,正在寻找一个既能帮你快速搭建网络服务,又能优雅处理文件、数据流,还不想被臃肿的框架拖累的工具箱,那么POCO C Libraries(…

作者头像 李华