闭着眼学基础python 保姆教程:组合数据类型(1)序列类型
这篇博客会完全仔细的讲解python的组合数据类型其中之一(序列)。
组合数据类型分类如下:
1、序列类型 (字符串、元组、列表)
2、集合类型 (集合)
3、映射类型 (字典)
文章目录
- 前言
- 一、列表
- 1、 创建列表
- 2、向列表添加元素以及删除元素
- 3、列表中获取元素
- 二、元组
- 1、创建并访问一个元组
- 2、更新与删除元组
- 三、字符串
- 1、创建与修改
- 2、常用的内置方法
- 补充
- 总结
前言
python的组合数据类型
是非常重要的,在后面的学习中会经常用到,可以说是无时无刻,大家务必要仔细学习掌握内容,为以后的学习打下牢固的基础,才能顺水推舟,茁壮成长。
一、列表
类似于其他编程语言中的 数组 ,它可以同时存放不同的类型的变量。
1、 创建列表
创建列表非常的简单,我们用中括号将数据含括在里面,数据之前我们用逗号( , )分割开来。
我们来看一下:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
这样就创建了一个列表。但是我们并没有给上面的列表赋予名字,所以等到下次我们还需要使用它的时候,就需要重新输入一遍,这样会感觉到很麻烦所以我们创建一个有名字的。
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
这样就好了,我们获得了一个贴上变量名的列表。
上面说过,列表是可以存放不同类型的变量。那么根据这个来证明,我们的列表内是不是也可以再存放列表、字符串、字典呢?
没错,是可以的,可以这样创建!
a = [1, 2, [1,2,3], '4', 131.4, {'箜岸':'男'}]
这样就好了注意我们用的都是英文符号哦,不然会出现错误!
2、向列表添加元素以及删除元素
列表添加元素
列表是可以随意修改的,我们可以向列表中添加元素,方法统计如下:
添加元素方法 | 描述 |
---|---|
append() | 添加一条元素。 属于列表对象的一个方法,该方法添加元素,会把元素添加到列表的末尾。并且该方法只支持一个参数 。 |
extend() | 添加多条元素。与 append() 方法相似,但 extend() 方法可以添加多条元素。 ( 注意: extend()参数是一个列表哦,多条元素放在列表中传入extend() 要注意) |
insert() | 指定任意位置插入元素。该方法有两个参数,第一个参数指定待插入的位置( 注意:是列表的索引值), 第二个参数指定待插入的元素值。 第一个参数也支持负数(表示与列表末尾的相对距离)。 |
重要知识点: | 列表的索引值是从0开始的,第一个元素的索引值为0, 第二个元素的索引值为1,以此类推。反向索引值从末尾向前,末尾的元素的索引值也可以是-1, 向前推进就是-2,以此类推。 |
以上是基本的添加方法,下面我们来实操一波。
(1)append()方法
a = [1, 2, 3, 4, 5]
a.append(6)
print(a)
执行如下:
这样我们就成功地添加了一个元素。
(2)extend()方法
a = [1, 2, 3, 4, 5]
a.extend([6,7,8,9]) #要注意extend的参数是一个列表哦
print(a)
执行如下:
这样多个元素都已经成功的添加到原列表的末尾了。
(3)insert()方法
a = [1, 2, 3, 4, 5]
a.insert(0, 10) #这里我们第一个参数传入的是0,代表我们要插入的位置是在索引值为0的地方。
print(a)
执行如下:
我们添加的元素 10 出现在了第一位,也就是索引值为 0 的地方。
我们还可以给第一个参数传入负数。代码如下:
a = [1, 2, 3, 4, 5]
a.insert(-1, 10) #这里我们第一个参数传入的是-1,有所不同的是10并不会添加到最后一个,而是与最后一个的距离为1。(注意:不要与索引值搞混淆)
print(a)
执行如下:
可以看到 10 插入到了末尾元素的前方,同理,insert()第一个参数为 -2 时, 10会被插入到 元素4 的前方。这里要注意!!!!
列表删除元素
方法如下:
|
删除元素方法 | 描述 |
---|---|
remove() | 需要指定一个要删除的元素。该方法不需要知道元素在列表中的位置,直接传入参数即可删除。如果要删除的元素不在列表中程序会报错。 |
pop() | 该方法跟 pop 这个英文单词的意思很像,就是将列表中的一个元素 “弹” 出,这个方法的参数是我们上面讲到的列表的索引值。 如果不传入参数,默认弹出最后一个元素。 |
del | 这个 del 语句是python语句,不是一个列表对象的方法、也不是BIF函数。 |
以上是基本的删除方法,下面我们来实操一波。
(1)remove() 方法
a = [1, 2, 3, 4, 5, '你好,箜岸']
a.remove(1) #我们准备删除 元素1
print(a)
执行如下:
我们在执行结果中可以看到元素 1 被删除了,它的参数是列表中的元素哦!
(2)pop() 方法
a = [1, 2, 3, 4, 5, '你好,箜岸']
a.pop(5) #因为pop()方法的参数为列表的索引值,这里我们要删除最后一个元素,但是还有另一种写法。
#我们还可以把上面的代码改成 a.pop(-1) ,因为索引值-1 代表的也是列表的最后一个元素哦!我们在上面讲到的,不要忘了!
print(a)
执行如下:
这里执行代码后 ,结果我们可以看到最后一个元素已经成功地被我们 “弹” 出来了。
(3) del 语句
我们在上面讲过,del语句 是一个 python语句 所以它的用法也与其他的方法不同。这里我们来看一下具体用法。
a = [1, 2, 3, 4, 5, '你好,箜岸']
del a[-1] #del语句是直接作用在列表对象上的 后面的a[-1] 意思也就是取 列表对象a 中索引值为 -1 的元素, 后面我们会讲到的。
print(a)
执行如下:
注意:我们还可以直接 del a
这样是直接删除了整个 a变量,这个列表就消失了,我们执行后再次引用就找不到这个变量了。
以上就是列表删除元素的基本方法。下面我们将继续讲解从列表中如何获取元素。
3、列表中获取元素
基本方法: 通过索引值直接获取到列表中某一个元素。
例如:
a = [1, 2, 3, 4, 5, '你好,箜岸']
print(a[-1])
执行如下:
也可以使用 len()函数 去实现相同的结果哦。如下:
a = [1, 2, 3, 4, 5, '你好,箜岸']
print(a[len(a)-1]) #len()函数 用于获取该列表的长度,也就是元素数。len(a)-1 就等于 5 ,也就是 a[len(a)-1] = a[5] ,等到的结果是一样的。
执行如下:
我们再介绍一些常用的方法:
常用方法 | 描述 |
---|---|
count() | 该方法统计某个元素在列表中出现的次数,也就是说某个元素在列表中有几个。 |
index() | 该方法返回某个元素在列表中第一次出现的位置(索引值)。 |
reverse() | 将整个列表原地翻转过来,第一个元素会跑到最后一个,这样的顺序,完全颠倒。 |
sort() | 将列表元素排序 |
示例如下:
(1)count() 方法
a = [1, 2, 3, 4, 5, 6, 1, 1, 2, 3, 4, 4]
b = a.count(1) #统计1出现的次数
print(b)
执行如下:
(2)index() 方法
a = [1, 1, 2, 3, 4, 5]
b = a.index(1)
print(b)
执行如下:
a对象列表有两个 元素1,但是index() 方法返回的是元素在列表中第一次出现的索引值。
小技巧:index() 方法 还可以限定查找范围。
a = [1, 1, 2, 3, 4, 5]
b = a.index(1, 1, 5) #第一个参数为我们要查找的元素, 第二个参数是起始查找的索引值位置, 第三个参数是结束的索引值位置。
print(b)
执行如下:
我们获得的索引值为 1 。自己可以去多多尝试。
(3)reverse() 方法
将列表原地翻转
a = [1, 2, 3, 4, 5]
a.reverse()
print(a)
执行如下:
(4)sort() 方法
它会对列表元素进行排序
a = [2, 4, 1, 5, 3]
a.sort()
print(a)
执行如下:
默认为从小到大排序。
我们如果想要从大到小排序呢,这里sort() 有个第三参数 是 reverse, 看到这个是不是很熟悉呢,这不就是我们上面讲到的 reverse()方法吗? 没错,道理是非常相似的。我们来看示例:
a = [2, 4, 1, 5, 3]
a.sort(reverse=True)
print(a)
执行如下:
这样我们就可以从大到小排序了,使用方法就是把 reverse 参数设置为True,就可以执行从大到小的排序了。
到这里我们的列表基础的东西也大概的讲完了,是不是很简单呢,这个内容非常重要哦,在以后会运用的越来越多的,务必掌握熟悉!
二、元组
元组与列表很像,可以说是亲戚了,但是他们有个非常大的区别,元组是不能任意修改和删除其中的元素的。它只能被我们访问,并不能像列表一样可以让我们任意地去修改和删除元素。
1、创建并访问一个元组
创建我们用小括号将元素包括起来 。 注意:若元组中只有一个元素,需要在该元素后添加一个逗号 ( , )
示例如下:
a = (1, 2, 3, 4, 5)
print(a)print(type(a)) #type()方法,打印出 a变量 的的属性
执行如下:
可以看到我们的元组创建成功, 并且利用 type() 函数得到 元组属性为‘ tuple ’ , tuple就是元组的意思。
访问元组的方法与访问列表的方法是一样的,没有什么差别,通过索引值来访问一个或多个元组元素 , 也就是切片。:
a = (1, 2, 3, 4, 5)print(a[1]) #直接通过索引值访问一个元素
print(a[:]) #默认是全部访问
print(a[1:]) #从索引值为1开始的地方访问到最后的元素。
执行如下:
2、更新与删除元组
在上面我们不是说到了 元组是不能被修改与删除的吗? 为什么这里我们又讲到 元组的更新与删除呢,这不是和上面的观点出现了分歧了嘛?到底哪个是对的呢? 虽然我们要讲更新与删除元组,但是大家一定要记住元组是不能被修改和删除的,这里我们只是运用了一些灵活的方法,在一定的意义上去更新与删除元组。
这个灵活的方法就是创建一个新的同名的元组,利用切片和拼接去实现这个真假美猴王的意思。
示例如下;
#先试试直接更新修改元组
a = (1, 2, 3, 4, 5)
a[1] = 10
print(a)
执行如下:
会发现这里报错了。直接修改是不行的,我们只能运用灵活的方法。
示例如下:
a = (1, 2, 3, 4, 5)
a = (a[0], 10) + a[2:]
print(a)
执行如下:
这样就可以成功的狸猫换太子了。运用元组的切片和拼接方法成功的去把元组元素更换了。这就是灵活的方法。
但是为了让大家能够明白这个元组不是原本的那个元组,我们用 id() 函数来证明一下:
a = (1, 2, 3, 4, 5)
print(id(a)) #获取的是未修改的元组 id值a = (a[0], 10) + a[2:]
print(id(a)) #获取到的是已经修改了的元组 id值
示例如下;
这里我们可以看见这两个 id值 是不同的,证明了他们两个并不是同一个对象。
删除元组中的元素,我们也是按照切片与拼接的方法来操作。
示例如下;
a = (1, 2, 3, 4, 5)
a = a[:1] + a[2:]
print(a)
执行如下:
这样就用灵活的方法删除了元组中的元素了哦。
删除整个元组,就像删除整个列表的方法差不多,利用 python语句中的 del语句 操作(日常开发中 不经常使用 del 去删除整个元组 ,因为python有垃圾回收机制,会把长时间不用的对象给自动回收);
示例如下:
a = (1, 2, 3, 4, 5)del a
print(a)
执行如下;
看到报错信息,a对象 已经不存在了,它这已经成功的被我们删除掉了。
三、字符串
1、创建与修改
字符串创建用单引号或者双引号。并且字符串与元组相似,一旦确定下来是不能够被修改。创建时使用单引号或双引号,一定要成对编写,不能够一边是单引号一边是双引号,不符合规则。
字符串也是可以利用切片和拼接这种灵活的方法来实现我们一定意思上的修改。
示例如下:
str = "大家好,我是箜岸,一个基础知识分享博主。"
print(str[:8])
执行如下:
是不是与元组、列表使用方法是一样的呢!
我们看一下利用切片和拼接去实现一定意义上的修改吧。
示例如下:
str = "大家好,我是小孩,一个基础知识分享博主。"
str = str[:6] + "箜岸" + str[8:] #我们把字符串里的 小孩两字, 改成我的名称。
print(str)
执行如下:
可以看到我们成功的把内容修改了,但是这不是真正的修改哦,大家可以利用 id() 函数去证明一下,会发现id值时不一样的,我们又一次的狸猫换太子了。
2、常用的内置方法
我们再将一些常用的字符串的内置方法,因为内置方法太多了,这里我们就挑一些常用的来介绍一下,以下是几个常用的内置方法。
如下:
常用内置方法 | 描述 |
---|---|
count() | 用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。 |
casefold() | 将字符串中的所有英文字母全部转换成小写。 |
find() 和 index() | 用于查找字符串中某个字符第一次出现的索引值,如果未发现find()方法会返回-1, index()会抛出异常。 |
replace() | 在字符串中将我们指定的参数替换成新的参数。 |
split() | 拆分字符串 |
join() | 拼接字符串 |
(1)count() 方法
示例如下:
str = "11223344545456"
print(str.count("1"))
执行如下:
(2)casefold() 方法
示例如下:
str = "Hello World"
print(str.casefold())
执行如下:
(3)find() 和 index() 方法
示例如下:
#能够查询到
str = "Hello World"
print(str.find('o'))
print(str.index('o'))
执行如下:
示例如下:
#不能查询到
str = "Hello World"
print(str.find('K'))
print(str.index('K'))
执行如下:
(4)replace() 方法
示例如下:
str = "Hello World"
print(str.replace('World', 'KongAn'))
执行如下:
(5)split() 方法
示例如下:
str = "Hello,World"
print(str.split(',')) #分割符是逗号
执行如下:
(6)join() 方法
示例如下:
str = ["Hello", "World"]
print(','.join(str)) #join()的参数是所有可迭代的对象。
执行如下:
join()方法是一个字符串的对象方法,与其他的方法使用略有不同。其实我们拼接字符串时,还可以使用 加号(+)去实现。但是当有较大的操作量时,使用 + 操作过程繁琐。
补充
我们把上面的内容基础大概也时讲的差不多了,它们三个被合称为序列。这里补充一些知识点。
(1) list() 方法
我们使用该方法,可以使可迭代对象转换成列表。
示例如下:
a = list() #可以使用该方法创建一个新的列表
print(a)b = list("Hello World") #传入字符串
print(b)c = list((1, 2, 3, 4, 5)) #传入元组
print(c)
示例如下:
(2) tuple() 方法
把可迭代对象转换成元组。
示例如下:
a = tuple() #可以使用该方法创建一个新的元组
print(a)b = tuple("Hello World") #传入字符串
print(b)c = tuple([1, 2, 3, 4, 5]) #传入列表
print(c)
执行如下:
(3) str() 方法
str() 函数将对象转化为适于人阅读的形式。将一个数或者任何的类型转换成一个字符串。
示例如下:
总结
到这里就讲完了,是不是还不是很难呢,就是知识点可能有一点多,其他的还是不难的。多多练习复习。
这篇博客真的花了不少时间呢,自我感觉还不够完美,希望自己越来越好。一篇关于序列的博客正式结束了,大家多多支持,箜岸会尽快把另外的几个组合数据类型一块发布哦。
闭着眼学基础python 保姆教程:组合数据类型(1)序列类型相关推荐
- Python组合数据类型之序列类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 序列 ...
- 序列包含一个以上的元素_小疯谈python:(五)数据类型之序列类型(中)
上一篇文章中,我介绍了对序列类型的通用操作,也就是对列表.元组.字符串这三种数据类型在都可以使用的方法.但是对于这三种数据类型的差异化操作我并没有介绍,因此在这篇文章,我将介绍列标表和元组的一些特有的 ...
- Python组合数据类型之集合类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 集合 ...
- Python学习教程:数据类型—字符串大总结
Python学习教程:数据类型-字符串大总结 1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串 ...
- Python组合数据类型之字典类型
单元概述 主要解决问题:让程序更好地处理一组数据 三类重要组合数据类型:集合类型.序列类型和字典类型 学完本章,我们能够在头脑中建立集合.序列和字典的模式来表达对一组数据的表达和处理 1. 定义 首先 ...
- Python学习笔记--组合数据类型
组合数据类型 集合 序列 字符串类型 元组类型 列表类型 字典 集合 集合的定义 使用{}或set()函数. 如:A={"python","hello,world&quo ...
- numeric scale mysql_MySQL基础教程1 — 数据类型之数值类型 - numeric
...if (!$dateTimeString) { $dateTimeString = time(); } $numeric = ''; $add_space = false; for($i=0;$ ...
- 小孩儿都能学会的零基础Python学习教程
本套python学习路线从零开始,让你⼀步步掌握Python开发的各项相关技能,最终达到企业对Python开发.后端开发.爬⾍开发.数据分析等职位的要求. 内容很全面,从python基础知识到最后的项 ...
- Python组合数据类型:序列sequence,列表list、元组tuple
一.组合数据类型container objects 组合数据类型container objects:能够表示多个数据的类型 集合类型:集合类型是一个元素集合,元素无序不重不变 序列类型:序列类型是一个 ...
- Python组合数据类型:容器类型总览,(不)可变数据类型immutable、(不)可迭代对象iterable、迭代器iterator、生成器generator、语法糖
一.组合数据类型container objects 组合数据类型container objects:能够表示多个数据的类型 集合类型:集合类型是一个元素集合,元素无序不重不变 序列类型:序列类型是一个 ...
最新文章
- Android编译系统分析二:mm编译单个模块
- bond4 交换机配置_CentOS 网卡配置bond4(LACP)
- 线性回归(一)---一元线性回归
- 第十章:内核同步方法
- Bootstrap 模态框(Modal)插件
- java安装错误咋办_win7系统安装Java出现错误的解决方法
- SU插件情报局 | Thom Thom:3D文本编辑器
- html多个div横向排列居中,多个div垂直居中横向排列的示例分析
- php导入rtf文件获取内容,可以使用PHP在网页中显示RTF文件吗?
- HttpStatus详解
- 怀念父亲母亲-端午节快乐
- Android 广告图片 全屏图片适配方案的思路
- 测试连接--ping (IP地址,网址,主机名)
- 数显电接点压力表与指针电接点压力表的区别
- PMI-ACP练习题(14)
- asp.net分页查询
- 《Occlusion Aware Facial Expression RecognitionUsing CNN With Attention Mechanism》论文阅读(2019TIP)
- 计算机网络——3A安全认证
- 2022年O2O平台还值得做吗
- 【转】fluent时间步长设定
热门文章
- EduCoder-Hive表DDL操作(一、二)答案-路漫漫远俢兮
- 独立IP、特产浏览量(PV)、访问次数(VV)、独立访客(UV)
- html5取消backspace后退功能,js屏蔽退格键(backspace或者叫后退键与F5)
- 7-4 工作分配问题分数 20作者 陈晓梅单位 广东外语外贸大学
- 谈谈This对象的理解
- php 百度地图根据经纬度获取地址,百度地图 根据经纬度获取地址
- 带有鸿蒙logo的壁纸,鸿蒙OS Logo曝光
- Qt2D游戏开发引擎QtGameEngine使用入门5——创建一个敌对的怪物角色并自动攻击
- 基于51单片机的蓝牙小车制作【新手向
- typora问题解决:This beta version of Typora is expired