列表
- 列表的应用——增删改查
- 增:
- append():
- insert()
- extend()
- 删:
- 漏删问题
- 改:
- 查:
- 列表的切片操作
- 列表的使用案例
- 产生10个随机数,将其保存到列表中
- 找出列表中的最大值
- 求和
- 排序
- 补充:
- == 和 in 的区别
- 符号:
- 嵌套列表
- 类型转换,可迭代
- 结语:
列表:类似其他语言的数组
数组:数字的组合 字母的组合 字符串的组合……
符号: 列表:[ ]
列表的应用——增删改查
增:
在这里我们需要用到三个函数:
append()
insert()
extend()
append():
append() 末尾追加,即在列表的最后添加新写入的内容。


像这样把红色添加到了蓝色后面
但是如果想增添多个,那么需要一次一次的写入,这时也可以用到循环。


这样就将所输入的颜色都添加到了后面。
insert()
指定位置添加(插入)


extend()
一次添加多个元素,类似列表的合并


我们发现它把字符串拆掉再添加进去的,它的应用是在列表中,将列表中的各个项都拆掉再添加进去。


像这样,entend()将 names 列表中的各个字符串拆开后再添加到了 colour 列表中。
这也可以用 “+” 号实现。
“+”号可以用于字符串的拼接,也可以用于列表的合并。


删:
del 是 delete 的缩写
声明一个列表:
brands=[‘hp’,‘dell’,‘thinkpad’,‘支持华为’,‘lenovo’,‘mac’,‘神州’]
下标:

我想要把里面的 ‘thinkpad’ 这个字符串删除,当知道它的下标位置时:


将 ‘hp’, ‘mac’ 都删除
运用循环,通过下标找到位置,进行删除


漏删问题
声明一个列表:
words=[‘hellow’,‘good’,‘gogogo’,‘world’,‘digot’,‘alpha’]
想要将带有 ‘go’ 的字符串都删除


假如此时像这样使用 break,则只会删除一个,后面的带有 ‘go’ 的字符串都没有删除。
还有一种方式,我们不用 break 强制退出,而是每一次执行后列表长度减1。


如果这样,里面的 ‘gogogo’ 字符串还是没有删除。
这两种方式都是漏删的情况。
那么怎么样改正呢?
上述方式 i+=1 会漏删,想要避免这种情况只需要在前面先让 i-=1 就可以了


此时也可以用 continue,即不让下面的 i+=1 执行


这样就解决了漏删的问题。
改:
一个这样的列表:
brands=[‘hp’,‘dell’,‘thinkpad’,‘支持华为’,‘mac’,‘神州’]
想要把里面的 ‘神州’ 改为 ‘HASEE’


像这样就完成了更改
步骤:1、找到要更改的值(使用下标) 2、通知=赋值 3、新的值覆盖原有的值
注意:只要做更改,必须要用到下标,只要用下标就必须用以下的循环方式。
如果我要把带有 ‘华为’ 的字符串改成 ‘HUAWEI’


像这样就可以了
查:
从列表中查找元素,标号是必不可少的。
列表的标号顺序:

下面要查找其中的元素:


像这样就查找了出来。
这里引申了一个新的函数:len() 长度


这里的 len() 表示的是括号中列表中元素的个数,是一个数。
下面从 names 列表中查找 superman 这个字符串
如果查到,就输出“有超人在里面!”


列表的切片操作
首先什么是字符串的切片操作?
假如一个字符串 s = ‘abcdefg’ ,我想取出里面的 ‘cde’ , s[2:5] -------->cde。里面的 s[2:5] 就是切片操作。列表里面也支持切片。


字符串的切片操作在第四课的中括号使用中有提到。
列表的使用案例
产生10个随机数,将其保存到列表中


升级:产生10个不同的随机数,将其保存到列表中
如果用 for 的形式循环


这时生成的随机数个数不一定是10。此时用到了 while 循环:


这样每次都会输出十个不同的随机数。
找出列表中的最大值
求刚刚生成的十个数中的最大值:
可以运用 max() 函数,也可以自定义求最大值
(max 函数是 python 系统定义好的函数,在python 中可以直接应用,但我们也可以自己编写锻炼思维)


像这样每一次的最大值都能求出来。
同样的方法也可求最小值
min() 是求最小值的函数


求和
求10个随机数的和
这也可以用 python 系统给出的函数 sum() 求或者自定义求


排序
将这10个随机数进行排序
python 系统给出的函数:


补充:
== 和 in 的区别
先来看一个例子:


== 两边的字符串必须完全相等时,才是正确的
in 的右边包含左边时就是正确的
in 的用法:


if 让 in 判断作为一个条件表达式;
for … in 循环条件
if 'a' in 'abc':
pass
if 'a' in ['a','b','c','d']:
pass
for 变量 in 字符串|列表:
pass符号:
字符串中可以使用的符号
+
*
in
not in
is
not is
[]列表支持的符号
# +
l1=[1,2,3]
l2=[5,6,7]
l3=l1+l2
print(l3) #------>[1, 2, 3, 5, 6, 7]
# *
l4=[5,8]*3
print(l4) #----->[5, 8, 5, 8, 5, 8]
# in
result = 3 in [1,2,3,4]
print(result) #------>True
result = [3] in [1,2,3,4]
print(result) #------>False
result = [3] in [1,2,[3],4]
print(result) #------>True嵌套列表
列表中的元素:
整型
字符串类型
浮点型
列表
元组
字典
对象
即列表中的元素只要是一种类型都可以往里面放。
嵌套列表:
l5=[[1,2],[3,2,1],[4,5],[7,3,1]]
print(len(l5)) #----->4
e=l5[2]
print(e) #----->[4,5]
print(e[1]) #---->取出的是[4,5]中的5
# 若想要取出[3,2,1]中的2,还可以这样输入
print(l5[1][1]) #----->2
# 想取出[7,3,1]中的1
print(l5[3][2]) #----->1类型转换,可迭代
前面我们学习了:
str() 转成字符串类型
int() 转成整型
float() 转成浮点型
转换成列表:
list() 将指定的内容转成列表,可迭代的内容可以放到 list 中。
什么是可迭代的?
只要能在 for…in 里面循环的就是可迭代的
迭代:‘abcdef’ ------>可以取出 ‘a’,‘b’,‘c’,‘d’,‘e’,‘f’。这样字符串’abcdef’就是可迭代的


结语:
以上就是这节课的全部内容,我们对列表有了更深刻的了解。如果有什么问题欢迎留言评论。

一群人急匆匆的赶路,突然,一个人停了下来,旁边的人很奇怪:为什么不走了?停下的人一笑:走得太快灵魂落在了后面,我要等等它。是啊,我们都走得太快,然而,如果走得太远,会不会忘了当初为什么出发?
















