(兔C残篇)关于python 列表的介绍


1. 列表是什么?

python 的列表,相当于 java 数组的概念

我们需要带着两个问题,去学习 1 列表是什么 2 列表怎么用

列表是什么?

可以把 python 的列表理解成 java 数组的概念。

在java中,数组的概念是:对于一组相同数据类型的集合

而在python中,列表的概念是:以组为单位进行存储的组信息,可以是几个,也可以是任意多个,总之 是以组为单位的将信息进行存储。


我们有了列表的概念,下面围绕第二个问题进行展开

列表怎么用?

在使用之前,我们还需要了解一下列表的特点:

  1. 按照特定顺序排列其中组内的组成元素
  2. 在列表中可存储任意内容
  3. 命名需要具有意义:复数

[ ] 符号表示:列表
, 符号表示:分隔组内元素


语法格式:

数组名 =[元素1,元素2,元素3,....]
# 注意 python的语法不用;号结束语句
1.1 创建列表的demo
#下面我们进行列表的创建

numbers =[1,2,3,4,5,6]
print(numbers[0])

在这段代码中,我定义了一个 用于存储整型类型的列表,
然后进行了0号索引指向内容的 输出打印测试。测试结果为:

在这里插入图片描述


打印测试的过程中我们用到了另外一个小知识点:

1.2 列表元素的访问

语法格式:

数组名[索引下标] 

这里又出现了 java的味道,数组的访问,就是通过 索引下标的指向 操作 数组中 存储的元素。
在 python中也毫不例外,访问列表中的元素内容,也需要录入指定的索引下标。

不同的是,python 更灵活,他还提供了特色的访问方式,还有 嵌套方法的别具一格。

其实在上面,我们已经可以做到简单的元素内容访问了,下边就开始接触 ::


1.3 列表的访问嵌套方法 demo

还记得我们在前一章的方法吗?
在这里插入图片描述

这里的方法,我们在前一章中做过练习的。
下面选一个方法,进行访问列表元素的嵌套测试。

names =['zhangsan','lisi','wangwu','zhaoliu']

#输出列表元素中 张三的名字,并以 首字母大写的方式进行输出
print(names[0].title())

我们来测试一下这段代码:
在这里插入图片描述

张三的姓氏,Z 是大写字母的形式输出出来的。


这里给大家演示完了 在访问列表元素时 嵌套方法的使用,分享一下我遇到的问题。

如果你用的和我是同款编译器 Geany,很有可能会遇到和我相同的问题

1.4 使用 Geany编译器,print语句报错解决方案

在这里插入图片描述
很简单,只需要点一点就好了,如上图。


好继续往下走,

来看一下乏味的概念,还有 python 的别具一格。

不管是 java 的数组,还是 python 的列表,他们的索引下标都是从 0 开始的!!

我们来指定输出 姓名:
指定输出: 李四 和 赵六

names =["zhangsan","lisi","wangwu","zhaoliu"]

print(names[1])
print(names[3])

这个不展示效果图了。

1.5 python 别具一格的 列表信息访问方式

python 别具一格的特点是,在访问列表内信息的时候,可以通过 负数的形式,
直接访问组内 末端的信息内容
例如 输出赵六,我们可以这样去写:

names =["zhangsan","lisi","wangwu","zhaoliu"]
print(names[-1])

当然 如果访问 倒数第二个元素 可以写 -2,倒数第三个可以写 -3。
书中说这种访问方式很有用,在你不知道 列表长度的情况下,想要访问 末端的 指定元素,就可以直接这样去写你的代码。


1.6 python 的列表元素内容,可以和变量进行嵌套

如标题,见名知意

names =["zhangsan","lisi","wangwu","zhaoliu"]

message = "欢迎:"+ names[0].title()+"同学来阅读 兔C残篇"
print(message)

在这里插入图片描述

这个图片有点不清晰,不过你需要关注的焦点是 如何使用python列表相关的知识点陈述。
至于运行的结果,可以自行 进行代码的编写 和 测试。


完成了上述内容,下面我们来穿插一些小练习,让自己掌握和运用上述知识。

1.7 动手试一试

下述内容练习题,均来自书中 例题

1.姓名
在一个列表中,存储一组名字,然后将其全部逐个打印出来

names =['张三','李四','王五','赵六','田七']
print(names[0])
print(names[1])
print(names[2])
print(names[3])
print(names[4])

在这里插入图片描述


2.问候语
在上述列表内存储的信息,选择一个人为你的好朋友,然后定义一个变量存储问候语,利用变量和数组访问的拼接方式,和朋友进行问候

#这里继续使用上个练习定义的数组
message ="你好,"+names[0]+"见到你很高兴,我的朋友!"
print(message)

在这里插入图片描述


3.自己的列表
创建一个列表,在列表中,存储一组信息,该信息为通勤过程中 可使用的交通工具。然后利用变量,拼接输出自己喜欢的通勤方式

vehicles =["单车","电动车","摩托车","汽车","公交","地铁"]

message ="我喜欢用"+vehicles[1]+"去上班,那样不快不慢,相对安全"
print(message)

在这里插入图片描述


至此,我们对 python 语言的 列表 有了简单的认识。

python的列表概念 等效于 java 数组的,但是python的优势在于,不止语法简洁,
其使用程度上也更多元化。
不仅可以轻易的访问列表中的元素,而且在不清楚元素内容的情况下,也可以轻易的做到倒序访问。
读取列表元素时,还可以夹杂方法的使用,让其直接以方法函数的指定格式进行列表元素的输出。
还可以将列表中的元素,混搭存储到变量当中,直接对变量输出时,也成功输出出列表元素。

下面我们来接触 使用列表的进阶内容

2. 修改,添加和删除元素
2.1 修改列表中的元素

修改列表中的元素,需要指定将要修改的列表名和 其元素的索引下标。

示例:

# 我在这里随便创建了一个存储整数的数组,然后输出看其是否存储成功
numbers =[1,2,3,4,5,6]
print(numbers)

# 然后利用 python语言的列表修改元素方法,指定将整数6改为1
numbers[-1] =1

#直接重新输出整个列表
print(numbers)

在这里插入图片描述


2.2 添加列表中的元素

默认的添加方式,我将其称为尾部添加方式,顾名思义,就是直接在列表中元素的最后一个元素,进行追加。采用这种添加方式,可以调用 python 为我们提供的 .append() 函数

# 定义元素测试列表
chinese = ['兔','C','残','篇']
print(chinese)

#开始追加
chinese.append('好喜欢')
#打印列表元素,看追加后的状态
print(chinese)

在这里插入图片描述
使用尾部添加方式进行列表元素的添加,并不妨碍其列表内本身元素的内容。

.

除了尾部添加的方式,我们也可以插队,让元素穿插进本身排序好的列表元素中。
插入元素的方式,我们需要官方为我们定义的 .insert() 函数,但是使用这种方式需要我们自己指定将要插入位置的索引下标。

示例:

#定义测试数组
chinese = ['好','欢','兔','C','残','篇']
print(chinese)

#是不是少了一个字?我们使用insert函数插入一个
chinese.insert(1,'喜')
print(chinese)

在这里插入图片描述


2.3 删除列表中的元素

在知道删除目标的索引下标位置时,可直接使用del语句进行删除

示例:

chinese = ['好','欢','兔','C','残','篇']
print(chinese)

#删除 好 和 欢
del chinese[0]
#看一下将第一个元素删除后,后续元素是否前移
print(chinese)

在这里插入图片描述

好移了,继续删

del chinese[0]
print(chinese)

在这里插入图片描述

好了,经过两次的 del 语句的使用,列表中的元素只剩下 兔C残篇了

小结:
del方法的使用前提,就是需要知道将要删除目标在列表中的索引下标位置,只要知道了下标索引,就可以肆意的进行指定删除了,唯一需要注意的一点是,删除前面的元素,后面的元素会向前前移,补充索引元素的正确顺序。

删除的第二个方法 pop。
.pop() 函数,可以将列表中的目标元素进行删除,但是还可以继续使用这个使用 pop 函数删除的元素。

示例:

chinese = ['兔','C','到此一游']
print(chinese) #老套路,定义完,输出一下,看其是否可以正常输出

str = chinese.pop()
print(str)
print(chinese)

在解释这段代码程序之前,我们先来看一下运行效果:
在这里插入图片描述

我来解释一下:
首先看到,我们定义的列表是可以正常输出内容的。
但是问题就在于 .pop 函数是怎么使用的?实例中的使用过程并没有传入索引下标啊!操作列表中的元素不应该是依靠索引下标吗?

对,是这样理解没错,但是我为什么没传入索引下标也能正确输出呢?
那是因为 pop 这个函数本身操作的是列表中最后的元素。所以我没传入索引下标也正常输出了。

那在代码里写: str = chinese.pop() 是什么意思?
这是因为 pop 函数的删除的本质是:
pop的术语叫做弹出。列表就像一个栈,而删除列表末尾的元素就相当于弹出栈顶元素。
而且,我们知道 pop 函数,可以让列表中的元素进行删除,然后继续使用。

所以我可以在后续的操作中,将其存储进一个变量中,然后输出变量,还可以输出使用 pop 删除的列表中的元素。
在最后,我重新输出 定义的这个列表,其中元素 就只剩下了 兔C了。


如果你坚持看到了文章的这里了。我不知道你还有没有兴趣继续往下学习。
但是你以为 pop 函数的使用就仅此而已了么?

呵… 呵呵.

上述只是不传入索引下标的使用,其实 pop 函数是可以传入索引下标进行使用的。
不信?

看实例:

chinese = ['兔','C','到此一游','~哈哈']

str1 = chinese.pop()
print('删除的元素内容为:'+str1)

#继续删除除去兔C以外的元素
str2 = chinese.pop(-1)
print('删除的元素内容为:'+str2)

#打印列表元素
print(chinese)

look look 测试结果:
在这里插入图片描述
del 语句 和 pop 语句的区别是:
前者将元素信息从列表中删除,后者只是将元素从列表中弹出,但是还可以后续使用。

oh !! 对了,关于删除相关的方法还有一个:remove()

remo 函数,是将列表中的元素彻底删除,这个函数一般使用在 知道列表中存储元素的准确内容,但是不确定其索引下标位置,可以在remo方法当中,输入将要删除列表元素的准确值进行移除。

这里 我们来用一下 remove函数

chinese = ['兔','C','残','篇','好喜欢']
chinese.remove('好喜欢')
print(chinese)

关于python列表 删除的函数已经介绍了三个,估计这里不放效果图,大家也晓得了程序执行的结果了。
remove函数,可以删除列表中一个指定的值,但如果列表中有相同内容值的时候,使用remove函数,就需要循环执行才可以将这些指定的相同内容删除。

为节省时间成本,关于列表函数的动手练一练就不在写到文章当中了。
我们最后统计一下,了解到的方法:
修改:传入索引,可以是负数开始
添加:append 列表尾部追加,insert 指定位置插入
删除:del 语句,pop 弹出 , remove移除


3. 组织列表

使用列表时,存储的元素顺序,在业务场景下,交由用户掌握所存储元素顺序的控制权,因为用户决定存储元素的顺序,也会作为存储之后的顺序。但是显示元素信息的顺序 还可以反转到我们自己手上掌控。
简而言之:列表元素的存储顺序权限在用户手上,但是显示权限,还是在我们手上的。

3.1 sort() 函数

我们先来介绍第一个函数

sort()
这个函数可以让列表中的元素进行排序,下面在演示之前,不得不提及java中的sort函数,java的sort函数是将数组元素进行排序。但是java的sort 函数 是由官方定义的 Araays 工具类中提供的。

names = ['zhangsna','li','wangwu','zhaoliu','tianqi']

names.sort()
print(names)

在这里插入图片描述

look at ! 效果图
还需要补充一点,就是 sort 函数将列表元素进行排列之后,它的效果是永久性的,这点要记住。

还有一点,就是,我想你已经看到了 效果图中的代码 注释 是这样打的 “”" “”"
是的 这是python的多行注释打法 三个双引号,三个双引号
而六个 ’ 单引号包裹的代码,就没有被打成注释。
单行的话 还是: #


3.2 sorted() 函数

sort() 函数是永久性的排序,而python还提供了临时排序的函数方法。

sorted () 函数
这个函数可以继续保留列表元素本身的存储顺序,当调用这个函数时,只启到调用时按照函数方法的效果进行排序输出

我们来使用一下 sorted() 函数

names = ['zhangsna','li','wangwu','zhaoliu','tianqi']

print(sorted(names))
print(names)

can you look at my code? please
在这里插入图片描述

使用 sorted 函数还可以传入参数,让其以排序后方式的反向输出


names = ['zhangsna','li','wangwu','zhaoliu','tianqi']

print(sorted(names,reverse = True))
print(names)

在这里插入图片描述


好,我们继续看后面的函数介绍

3.3 revers() 函数

倒着打印列表
反正列表中的元素,可以使用 revers() 函数

numbers = [1,2,3,4,5,6,7,8,9]

numbers.reverse()
print(numbers)

在来看一下效果图:
在这里插入图片描述

reverse() 函数的调用效果,也是永久保存的。
但是也可以随时将其恢复回正向的顺序,只需要再次调用一次即可。


3.4 len() 函数

确定列表的长度
函数 len() 的使用 可以让我们确定列表的长度

look test code

numbers = [1,2,3,4,5,6,7,8,9]
print(len(numbers))

在这里插入图片描述


3.5 避免索引错误

索引从0开始,而不是1 注意索引下标使用时的越界问题。
如果访问最后一个元素可以使用索引为 -1,如果是倒数第二个索引元素可以写为 -2,但是注意,-1的使用是有局限性的,就是在列表中没有元素的情况下,使用 -1 也会下标越界的。

参上内容,为本篇博文的全部小节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兔C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值