上一篇:小牛叔讲Python第7章:循环与条件的爱恨情仇

下一篇:小牛叔讲Python第9章:小牛叔讲Python第9章:函数是你走过的套路

1、前言

凛东将至,琼恩·雪诺当上司令官命令山姆威尔去南方,到旧镇学习成为一个学士再回黑城堡。山姆发现如要熟练在图书馆中查询藏书,必须熟悉“列表”、“集合”、“元组”和“字典”4种数据组织形式。

2、列表list

图书馆所有书架上的藏书都是“列表”形式,为了帮助理解列表山姆记得小时候最开心的事情就是逛街。因为老妈会给买最喜欢吃的糖葫芦。竹签可以把许多山楂串成串。列表处理数据与吃糖葫芦其实很相似,:

上面两种形式都是“列表”,特点如下:

  • 元素有序。列表中的元素都是有顺序的,可以通过下标来定位。
  • 可以编辑。列表变量中的元素可以被删除、添加。

2.1 列表的定义

[元素0,元素1,...]

如上所示,列表中的元素是从0开始的。

如下代码使用中括号和逗号分隔来定义列表中的内容,如下定义了各种列表形式,比如:包括1,2,3,4,5五个整数的列表....

a=[1,2,3,4,5]   #定义5个元素的列表
b=[] #定义了空的列表
c=['夜王前传',1045,'龙晶使用方法',1056] #定义了书名页数
d=[['夜王前传','龙晶使用方法'],[1045,1056]]   #定了2个列表元素(书名列表、页数列表)的列表 

定义完成可以通过如下的方式“取出数据”:

a[0] #表示第0个元素1
a[1] #表示第1个元素2
c[1] #表第第1个元素1045 

此外,还可以使用负数来倒着取元素,今天山姆的女友吉莉来看他了,提义两个人玩扑克牌,我们定义一幅扑克可以这样定义:

2.2 切片操作

列表在计算机中有如下的主流操作: 切片、删除、弹出、添加。

切片就像在书柜(列表)中抽出中间一部分书本(元素),切片操作是这样的,使用冒号分隔前后位置(重要:后面的位置是不被包括的),继续之前定义我们看示例:

a=[1,2,3,4,5] #定义5个元素的列表
#形成新的列表[2,3]
a[-4:-2]
#形成新的列表[2,3]
a[1:3] 

切片可以省略前后的数字,表示开始和结束,切片有好处就是不会产生“溢出错误”,如下的代码在计算时只返回空列表,而不会出错:

#表示从第100位置开始到结束的切片,返回空
a[100:]
#下面语句会产生溢出错误
a[100] 

2.3 添加删除操作

使用append动作来添加元素至队尾、使用del语句删除元素、remove动作删除列表中某一个值(只能一个),如下所示:

列表.append(元素) #添加元素进列表尾
列表.remove(值) #删除列表中的值一次
del 元素 #在内存中删除元素

a=[1,2,3,4,5] #定义5个元素的列表
del a[0]
print('删除a第0个:',a)
a.append(5)
print('添加5,a:',a)
a.remove(5) #只能删除一次5
print('删除数值5,a:',a) 

运行的结果如下:

删除a第0个: [2, 3, 4, 5]
添加5,a: [2, 3, 4, 5, 5]
删除数值5,a: [2, 3, 4, 5] 

大家可能发现,除了del语句比较特殊,其它append和remove动作在运行时都需要把列表变量放在小数点前,现在大家可以理解为这是列表专门的动作,这种写法表示:调用列表class类的方法函数,大家要记往。

del 语句是内置命令,不光应用于列表它表示在内存中删除销毁对象,任何变量都可以被“销毁”

2.4 插入弹出操作

弹出pop操作也是列表的专门的“方法”,表示从列表中的某个位置删除对象,但是会同时返回这个对象,就好像子弹从弹匣中弹出来一样。同样插入insert操作也可以基于位置(前文remove是基于数值而不是位置)把新元素插入列表。

列表.pop(位置)#不写就默认最后一个
列表.insert(位置,元素) #把元素插入位置当中

a=[2,3,4,5,5]
b = a.pop(3)
print('弹出第3个元素,a:',a,',弹出了:',b)
#第0个位置前插入字符“首”
a.insert(0,'首')
print('插入a:',a) 

上面的代码运行结果如下图:

弹出第3个元素,a: [2, 3, 4] ,弹出了: 5
插入a: ['首', 2, 3, 4] 

3、元组tuple

元组可看成是“只读”的列表,它使用成对的圆括号()来定义,其中的元素都有0开始的位置,但只能读取而不能添加和删除其中的元素。这就类似于Sam在学院中看到的珍贵特定古籍书柜,柜中的书籍都是固定位置的,只能取阅而不能更新新的书籍进来,也不允许把书籍抽走放在别处或是销毁。

在Sam学院中把书籍位置使用(柜号,行号,列号)的元组来表示,我们看示例:

#Sam学院中把书籍位置使用(柜号,行号,列号)来表示 :
book_a_loc = (1,23,34)
book_b_loc = (5,10,90)
print('a书位置:',book_a_loc)
print('a书行列:',book_a_loc[1:])
print('b书行号:',book_b_loc[1])
#试删除第1个元素会出错
del book_a_loc[0] 

运行后的结果如下:

a书位置: (1, 23, 34)
a书行列: (23, 34)
b书行号: 10
Traceback (most recent call last): File "/....../demo2.py", line 7, in <module>     del book_a_loc[0] TypeError: 'tuple' object doesn't support item deletion 

错误信息提示我们,tuple元组类型不支持元素删除。

嘿嘿:Sam问道如果把列表加入元组呢,到底可编辑还是不可编辑?
结论是这样的,元组虽然不能编辑,但是其中作为元素的列表却是可以编辑的。

具体交给读者去试试吧!

4、集合set

在学院中有一些正在借阅当中的书籍,通常被学士位乱堆在桌子上,也没有顺序,这种在python中没有顺序的元素集叫“集合”,我们定义空集合时使用set(),而不用{}因为空花括号表示空的字典,我们定义集合时使用{元素1,....,}来表示。它有如下的特点:

  • 无序
  • 不重复
s = {'男','男','女'}
print(s) 

在上面的定义当中,我们有重复的男,但是打印出来只有2个值:

{'女', '男'} 

集合类型在数学上有交并差补运算,同样在python当中也有运算符分别是&|-^,具体示例如下图:

n1 = {'张','王'}
n2 = {'何','王'}
print('合',n1&n2,'并',n1|n2,'差',n1-n2,'补',n1^n2) 

运行结果如下:

合 {'王'} 并 {'何', '张', '王'} 差 {'张'} 补 {'何', '张'} 

5、字典dict

就像Sam经常使用的字典类书籍,Sam想查词dragonglass(龙晶石)就从dragonglass索引去找内容。python有一种数据结构dict可以实现上述根据索引来查询的功能,dict当中的元素由冒号分隔的两部分组成,前部分当索引的叫关键字key(个人觉得叫钥匙更形象),当内容的叫value(值)。

字典内的元素没有数字位置,只能通过关键字来获得内容。

#字典定义分隔符{},后可用回车
d = {'dragon':'一种古老的动物','龙晶':'使用龙的骨骼形成化石晶体',}
#查询 龙晶
print('龙晶',d['龙晶'])
#插入元素
d['丹尼莉丝'] = '坦格利安家族的风暴降生丹尼莉丝坦格利安一世、不焚者、弥林女王、安达尔人和先民的女王、七国统治者暨全境守护者、草原上的卡丽熙、打碎镣铐者以及龙之母!'
#删除dragon
d.pop('dragon')
#打印整个字典
print('d的内容',d)  

运行后,结果如下:

龙晶 使用龙的骨骼形成化石晶体
d的内容 {'龙晶': '使用龙的骨骼形成化石晶体', '丹尼莉丝': '坦格利安家族的风暴降生丹尼莉丝坦格利安一世、不焚者、弥林女王、安达尔人和先民的女王、七国统治者暨全境守护者、草原上的卡丽熙、打碎镣铐者以及龙之母!'} 

通过对字典的熟练运用,SAM找到了龙晶矿的所在地,他决定把这个消息告诉SNOW,帮助七国打赢夜王之战,关注后续发展哦。

上一篇:小牛叔讲Python第7章:循环与条件的爱恨情仇

下一篇:小牛叔讲Python第9章:小牛叔讲Python第9章:函数是你走过的套路

恭喜你又进步了一点,关注并跟随小牛叔,摆正编程入门姿式!

小牛叔讲Python第8章:集合大家一起的快乐相关推荐

  1. 小牛叔讲Python第10章:化繁为简的推导式

    上一篇:小牛叔讲Python第9章:函数是你走过的套路 下一篇:小牛叔讲Python第11章:函数的高级用法以及匿名函数 目录 前言 1.推导式的形式 2.生成器 - () 3.推导式与交互使用 4. ...

  2. 小牛叔讲Python第12章:面向对象类与实例(Class入门)

    上一篇:小牛叔讲Python第11章:函数的高级用法以及匿名函数 下一篇:小牛叔讲Python第13章:类Class中的各种变量类型 小牛叔用轻松有趣的故事,带你进入Python的编程世界. 1.类 ...

  3. 小牛叔讲Python第5章:while循环-符合条件就带你一直飞

    上一篇:小牛叔讲Python第4章:条件语句-有时选择比努力更重要 下一篇:牛叔讲Python第6章:for循环-能计数的循环1234567 跟着小牛叔,找准Python入门姿势,每天只要阅读10分钟 ...

  4. python网页运行环境_Python小牛叔Web开发1:安装Visual Studio Code配置Python运行环境...

    本系列是Python小牛叔Web开发系列,以Django为框架介绍如何使用Python来开发Web应用,本教程适合对于Web开发有基本知识的入门者. 1.安装Visual Studio Code编辑器 ...

  5. 【python第四章——序列(列表、元组、字典、集合、字符串、正则)】

    python第四章--序列 第四章--序列 4.1列表 4.2元组 4.3字典 4.4集合 4.5字符串(重要) 4.6正则表达式 第四章--序列 概念:序列指一块可存放多个值的连续内存空间,这些值按 ...

  6. 进击的Python【第一章】:Python背景初探与Python基础(一)

    Python背景初探 一.Python起源 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做 ...

  7. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  8. 《HeadFirst Python》第一章学习笔记

    对于Python初学者来说,舍得强烈推荐从<HeadFirst Python>开始读起,这本书当真做到了深入浅出,HeadFirst系列,本身亦是品质的保证.这本书舍得已在<Pyth ...

  9. 【JAVA SE】第十四章 集合框架、语法糖和泛型

    第十四章 集合框架.语法糖和泛型 文章目录 第十四章 集合框架.语法糖和泛型 一.集合框架 1.概念 2.接口 二.语法糖 1.概念 2.解语法糖 三.泛型 1.概念 2.泛型类 3.泛型接口 4.泛 ...

最新文章

  1. windbg学习.formats--转换成各种进制
  2. OpenFOAM中slip和noslip介绍(滑移条件无滑移条件)【翻译】
  3. Circle and Points POJ - 1981(单位圆覆盖最多点)
  4. wait、waitpid
  5. 前端学习(2766):生命周期函数
  6. hadoop3.2.2--记录java.io.IOException: All specified directories have failed to load.问题
  7. 虚拟机上搭git服务器,搭建gitlab服务器
  8. 使用Executor管理Thread对象详解
  9. android自动化测试--appium运行的坑问题及解决方法
  10. 质疑北京大北农科技集团股份有限公司(”大北农“)停牌公告
  11. pc企业微信hook接口,企业微信营销软件,企业微信群发
  12. 个人博客系统PHP源码 DouPHP轻博客
  13. pmp效益管理计划和做题技巧
  14. Win7 配置 Git 客户端 图文详解
  15. BandZIP无广告版(v6.25)安装及禁止联网设置
  16. CSDN自动展开全文的插件
  17. 项目经理常用的几大项目管理工具盘点
  18. .net敏捷软件开发框架核心功能特点
  19. 有些小老板辛辛苦苦经营了一年的工厂,年底了再看看自己的兜里比脸都干净是什么原因?
  20. 【物联网专题】物联网IoT相关学习与输出

热门文章

  1. 【信号去噪】基于改进的阈值高斯脉冲信号去噪含Matlab源码
  2. C语言 主动判别int型出界
  3. python 离线翻译软件_简单翻译软件
  4. 科研人必备论文小技巧——word分分钟自动修改插入的参考文献、附图和表格的插入技巧
  5. 微众银行七年,从拓荒者到深耕者
  6. 记一次对微信引流网站的简单渗透测试
  7. 解决layui的table数据重载reload where参数会保留上次条件的问题
  8. macOS上使用Openconnect代替Cisco Anyconnect
  9. 【LeetCode】825. Friends Of Appropriate Ages 解题报告(Python)
  10. 【企业动态】开启新征程,谱写新篇章 | 数商云喜迎乔迁