尚学堂Python第三次课---列表

第三次课---python序列

    1.序列是一种数据存储方式,用来存储一系列的数据

    2.在内存中,序列就是一块用来存放多个值的连续的内存空间

    

4.python中一切皆为对象,所以从上可以看出,序列存储的是整数对象的地址,而不是整数对象的值

5.python中常用到的序列有:字符串,元组,列表,字典,集合

 

列表

    1.可以用来存放任意数目,任意类型数据

    2.是内置可变序列,是包含多个元素的有序连续的内存空间

    3.大小可变,根据需要随时增加或减小

        a = [1,2,3,4,5,...]---可任意数目

        b = [1,2,3,"fdj",True]---可任意类型

        c = [1,1,1,2,34,5]  --可重复

   

列表的创建

  

上面的图中range中的start,step是可选的,end是必选的

 

列表中的元素的增,删,访问-----列表会自动进行内存管理,增删会涉及列表元素的大量移动

1.append(obj)---原对象上增加列表的元素,尾部添加,速度快,该方法没有返回值

 ----a的地址没有发生改变

2.“+”操作符

可以看到"+"尾部添加,不是在原对象上添加,而是产生了新的对象,会将原对象中的值和新列表中的值一起复制到新的对象中,会涉及大量的复制操作。

 

3.extend(seq)---将目标列表中的所有元素添加到尾部,是在原对象中添加,不创建新的对象,没有返回值

seq -- 元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾。

 

4.insert(index,obj)---将要插入的元素,插入到指定的位置,涉及后面的元素需要移动, 该方法没有返回值

5.乘法扩展---与字符串一样,使用"*",如*3,则表示列表中的元素重复三次

6.删除---del ----不能超过下标进行删除,否则报错

7.移除列表中的一个元素----pop([index=-1]),返回该元素的值,当不指定的时候,默认移除最后一个元素,删除元素后,后面的元素向前移动

 

 

8.删除第一次出现的指定元素---remove(obj), 该方法没有返回值但是会移除列表中的某个值的第一个匹配项。

 ---从左至右

 

 

列表元素的访问和计数

1.直接通过下标进行访问,【0,length -  1】

  

 

2.index(obj [,start,[end])----通过指定元素在列表中第一次出现的位置,start从0开始,end以end - 1作为终止, 该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。

3.count(obj)---返回obj该对象在列表中出现的次数,如果没有,则返回0

列表的长度---len(list),返回列表的长度

 

某元素是否在该列表中

1.使用count--如果返回0,则表示没有在列表中

2.使用"in"来判断是否在列表中,如果在,则返回True,否则,返回false,也可以使用"not in"

 

切片操作----与字符串相似---[起始偏移量start:终止偏移量end[:步长step]],start从0开始,end从end-1终止,step可以省略

从图左边可以看到最后三个的结果不正确,说明理解出现了错误

print(a[-2:]) #结果为:[[34,56,"dfjjks",True],True,"jdfskaf",45,67,45,23]----这里说即使是从列表倒数第二个元素,即[[34,56,"dfjjks",True]开始,也是往左边去,而不是往右边

print(a[-3:-5])  #结果为:[True,"jdfskaf",45,67]----因为上面提过只能往左边去,不能往右边,所以这个本身就有问题

print(a[::-2])   #结果为:[56,"jdfskaf"45]----步长表示隔几个位置取一个值,从倒数第一个元素开始(步长包括它,即它+倒数第二个就是二个步长,所以,第二取出的元素是True)

切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。起始 偏移量小于 0 则会当做 0,终止偏移量大于“长度-1”会被当成”长度-1”。

 

列表的遍历

for obj(元素) in listObj(列表对象)

print(obj)

 ---报错,因为print是从属于for的在这种情况下,所以需要在print使用tab键

 

复制列表

从图中看到有三种方法,第一,二种种,id一样,说明只是b,c也指向了a的地址,而在三种中,产生了新的对象

copy()---- 返回复制后的新列表,类似于a[:]

 

列表排序

    1.不产生新的对象,在原有的对象上排序---sort(reverse=False)

其中:reverse = True,则降序       reverse = Flase,则升序

无返回值,但会对原对象进行排序

 

    2.产生新的对象---sorted(listObj,reverse=True)---返回新的对象,默认降序

  

 

列表中的最大值---max(listObj),最小值---min(listObj),数值型求和---sum(listObj)---非数值型求和,报错

当列表含有数值型和字符串时,使用min,max报错

当列表含有数值型,布尔型时,使用min,max,sum正常

当列表中只含有字符串时,使用min,max正常

当列表中有字符串,布尔型时,使用min,max,sum报错

二位列表---用于存储二维,表格数据。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值