当前位置: 首页 > news >正文

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函数并不会改变列表本身,你可以把它理解成是先将列表进行复制,然后再进行顺序的整理。

http://www.cnnetsun.cn/news/3577374.html

相关文章:

  • Claude Fable 5代码生成AI模型:技术解析与编程实战指南
  • 2026.7.21实习日记
  • 边界监督在离线强化学习中的安全优化实践
  • Linux+C 语言零基础 Day2|拆解 GCC 四层编译流程,吃透 C 语言全部基础数据类型
  • C++装饰器模式详解:动态扩展对象功能的瑞士军刀
  • POCO C++ Libraries:构建高效网络服务的模块化C++工具集
  • TI EMAC/MDIO电源管理与寄存器配置实战:从低功耗到高性能网络驱动
  • 晶圆探针台视觉对准技术:从亚微米定位到全自动测试
  • Nacos持久化Sentinel规则配置
  • C++ std::declval:编译期类型探测与SFINAE编程的核心工具
  • RocketMQ NameSrv架构设计与核心实现解析
  • Unity游戏资源逆向:通用去马赛克技术解析与实践指南
  • C++模板编程:从泛型思想到实战应用
  • C++实现卡尔曼滤波器:从原理到仿真的完整开发指南
  • C++编译错误C2065:getline未声明标识符的全面解析与解决方案
  • 多层双向LSTM:结构原理、PyTorch实现与NLP应用实战
  • PGP 8.1 实战指南:从非对称加密到数字签名与自动化安全实践
  • Vue3 大屏适配组件(Scale / Rem 双方案一键切换)
  • C++实现定步长龙格库塔法弹道仿真:从数值积分到物理建模
  • 开源音频系统Open-Golf:重构经典3D音效引擎与现代实现
  • AutoVLA论文阅读笔记
  • 社交媒体数据挖掘:文献阅读与实战技巧
  • 桌面Agent技能组合实战:不会写插件也能搞定搜索→整理→发邮件流水线
  • MotrixNext:Rust+Tauri重构下载器的技术突破
  • 影刀RPA 税务申报辅助:增值税报表自动填报
  • RocketMQ原生操作与性能调优实战指南
  • 程序员如何应对AI带来的职业角色冲突
  • Python+Selenium自动化测试入门与实践指南
  • DirectX修复工具核心功能与使用技巧详解
  • 进入真实世界:为什么 AI 的下一阶段属于“判断力”