【第四课】Python序列入门2022.5.29

学习内容:

序列

常用的序列结构:字符串、列表、元组、字典、集合。
序列是一种数据存储方式,用来存储一系列的数据,是一块用来存放多个值的连续的内存空间。
序列中存储的都是对象的地址,不是值。

列表

列表是内置可变序列,是包含多个元素的有序连续的内存空间。
列表中的元素可以各不相同,任意类型。
列表的大小可变,根据需要随时增加或减少。

列表对象的常用方法说明
list.append(x)增加,将元素x增加到列表list尾部
list.extend(aList)增加,将列表aList所有元素增加到列表list尾部
list.insert(index,x)增加,将元素x插入到列表指定位置index
list.remove(x)删除,将列表list中第一个出现的元素x删除
list.pop([index])删除,删除并返回列表list指定为index的元素为止,默认则是最后一个元素
list.clear()删除所有元素,并不是删除列表对象
list.index(x)访问元素,返回第一个x的索引位置,若不存在则抛出异常
list.count(x)计数,返回指定元素x在列表中出现的次数
list.reverse()所有元素原地翻转
list.sort(x)所有元素原地排序
list.copy(x)返回列表对象的浅拷贝
len(list)列表长度,返回列表中包含元素的个数
(一)列表的创建
1.基本语法[ ]创建

a = []

创建一个空的列表对象,或者加入元素。

2.list()创建

a = list()
a = list(range(10))

range是一个对象,可以用list()把任何可迭代的数据转化成列表。

3.range()创建整数列表

range(start , end , step)

start:可选,默认0
end:必选,表示结尾数字
stop:可选,默认1

range()在python返回的是一个range对象,不是列表,需要转换成列表。

4.推导式生成

a = [x*2 for x in range(5)]

循环创建多个元素,得到 a =[0,2,4,6,8]

a = [x*2 for x in range(100) if x%9 == 0]

通过if语句过滤元素,得到 a =[0,18,36,54,72,90,108,126,144,162,180,198]

(二)列表元素的增加和删除

列表增加和删除元素时,列表会自动进行内存管理,减少了负担,但是涉及列表元素的大量移动,效率低。一般只在尾部增加或删除元素。

1.append()尾部增加单个元素

a.append()

2.extend()尾部增加多个元素

a.extend([ 20 , 30 ])

append在列表尾部增加元素;extend在列表尾部增加目标列表的所有元素。都不改变量的地址,效率较高。
用 a = a + [ ],运算符操作会变成新的变量,有大量复制操作。

3.insert()插入元素

a.insert(1,20)

插入位置后面的元素会移动,影响处理速度。其他还有remove() ,pop(), del()等也会影响速度处理。

4.del()删除元素

a.del(1)

删除指定位置的元素,后面的元素会前移

5.pop()删除元素并返回

a.pop()

删除并返回指定元素,如果未指定位置则默认列表最后一个元素。

6.remove()删除指定元素

a.remove(100)

删除首次出现的指定元素,不存在则抛出异常。

(三)列表元素的访问和计数
1.通过索引直接访问元素

a[ ]

索引区间在[ 0 , 列表长度-1] ,超出这个范围就会抛出异常。

2.index()指定元素在列表中首次出现的位置

a.index(200)
a.index(200,3)
a.index(200,5,9)

语法index(value,[start,[end]]),start和end是列表的位置,索引的都是在指定范围内元素首次出现的位置。

3.count()获得指定元素出现的次数

a.count(20)

4.len()获得列表中元素的个数

len(a)

5.成员资格判断

判断列表中是否存在指定的元素。用count(),返回0表示不存在。
也可以用 in 关键字,返回True或False

20 in a
“abc” in a
“abc” not in a

(四)切片操作

切片适用于列表、元组、字符串。标准格式:[start : end [: step ]] ,注意起始和结束为位置,则包头不包尾。

(五)列表的遍历

for x in list:
print(x,end = ‘#’)

遍历列表里的每个元素,每个元素加一个#隔开。

(六)列表的排序
1.修改原列表排序,不建新列表。

a.sort()

默认升序排序

a.sort(reverse=True)

降序排列

import random
random.shuffle(a)

打乱列表顺序

2.建立新的列表排序

a = sorted(a)
a = sorted(a,reverse=True)

3.reversed()返回迭代器

c = reversed(a)

c是一个迭代器,只能用一次,显示时要用list()

list©

(六)多维列表
1.一维列表

存储一维、线性的数据。

2.二维列表

存储二维的数据。在列表内存储表格的信息。

a[0]
a[0][3]

加2个位置可以检索第m个元素中的第n个元素。

3.嵌套循环打印二位列表中的所有数据

for m in range(3)
for n in range(4)
print (a[m][n], end=‘\t’)
print() #打印完一行,换一行

m是外面一层列表,有3个value,n是列表内的元素列表,每个元素有4个value


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值