>>>
了解什么是序列
掌握序列的基本操作
掌握列表及二维列表的基本操作
掌握列表推导式的应用
掌握元组的基本操作
掌握元组推展式的应用
了解元组和列表的区别
5.1 序列概述
序列结构主要有:列表,元组,集合,字典
5.1.1 索引
5.1.2 切片
[
sname 序列的名称
start 开始的位置
end 结束的位置
step 步长,默认为1
]
5.1.3 序列相加
不现序列可以相加
但是,不能列表和元组相加,列表和字符串相加
5.1.4 乘法
序列 * n = n个序列
5.1.5 检查某个元素是否是序列的成员(元素)
value in sequence
5.1.6 计算序列的长度,最大值,最小值
len(序列),max(序列),min(序列)
list(), 将序列转换成列表
str(0, 将序列转换为字符串
sorted(), 对元素排序
reversed(), 反转序列中的元素
5.2 列表
列表中的所有元素放在对中括号中,“[]”,
同一列表中,可以元素类型不同
5.2.1 列表的创建和删除
a,使用赋值运算符直接创建列表
list_1 = [1, 'abc']
b,创建空列表
list_2 = []
c,创建数值列表
5.2.2 访问列表元素
除了用>=0以上的数,还可以用负数,表示,倒数第几元素。
5.2.3 遍历列表
a,用for循环实现
for item in listname
#输出item
b,用for和enumerate(listname)实现
for index,item in enumerate(listname)
print(index, item)
#_index: 元素下标
#_item: 元素
5.2.4 添加,修改和删除列表元素
a,添加元素
listname.append(x);
b,修改元素
listname[num] = x; num 表示整数,可为负数;
c,删除元素
if listname.count(x) > 0:
listname.remove(x)
5.2.5 对列表进行统计运算
a,获取指定元素出现的次数
listname.count(x)
b,获取指定元素首次出现的下标
listname.index(x)
c,获取指定元素出现所有坐标
print(i for i, x in enumerate(listname) if x == 'your_itme')
d,统计数值列表的元素和
sum(listname,start) start表示计算出listname序列的值再加上start这个数
5.2.6 对列表进行排序
a,使用列表对象的sort()排序
listname.sort(key = None, reverse = flase)
# key,表示对元素先处理再排序,如 key = str.lower,表示不区分大小写
# reverse,反转,因为默认排序是降序排序的。
b,使用内置的sorted()函数去实现
sorted(listname, key = None, reverse = flase);
同上
5.2.7 列表式推导式
a,生成指定范围的数值列表
list = [Expression for var in range]
# Expression 表达式
# var 循环变量
# range 采用range函数生成的范围
如:
import random
randomnumber = [random.randint(10, 100) for i in range(10)]
print(randomnumber)
b,根据列表生成指定需求的列表
list = [expression for var in list]
如:
list = [(int)x*0.5 for x in range(0,10,2)]
print(list)
c,从列表中选择符合条件的元素,并组成新的列表
list = [x for x in range(1,10) if x%2 == 0]
print(list)
5.2.8二维列表
a,直接定义列表
list = [
[1,2,3],
[4,5,6],
[7,8,9]]
print(list)
b,使用嵌套的for循环创建
list = []
for i in range(4):
list.append([])
for j in range(3):
list[i].append(j)
print(list)
c,使用列表推导式创建
arr = [[j for j in range(3)] for i in range(4)]
print(list)
5.3 元组
元组序列是不可变的序列,使用一对小括号()括起来的序列。
5.3.1 元组的创建和删除
a,使用赋值运算符直接创建元组
tuplename = ("a", "b", "c")
tuplename = 'a', 'b', 'c'
tuplename.type() # 测试变量的类型
b,创建空元组
emlpyname = ()
c,创建数值元组
tuple(data) data 表示可以转换成元组的数据,类型是range对象
字符串,元组或者其他可迭代的数据
d,删除元组
dle tuplename
5.3.2 访问元组元素
tupleArr = (1,2,3)
a,print(tupleArr) # 输出全部元素
pirnt(toupleArr[1:3]) # 输出第2个到第3个
5.3.3 修改元组
元组不可以单个修改,但可以整体修改;
如:tupleArr = (1,2,3); tupleArr = (4,5,6)
元组连接时,只有是元组和元组,如下,不要忘记了逗号表元组
print(tupleArr + (3,) )
5.3.4 元组推导式
同列表一样的操作,不过是小括号括起来的
如下代码:
import random
randomNumber = (random.randint(10,100) for i in range(10))
#_生成的是生成器对象
printrandomNumber
randomNumber = tuple(randomNumber)
print(randomNumber)
/**/
通过元组生成的生成是可以使用for循环,和_next_()方法。(那么列表呢)
number = (i for i in range(3) )
for i in range(3):
print(number.__next__())
5.3.5 元组与列表的区别
a, 列表是可变序列,可修改和删除,
元组是不可变序列,不可修改, 只整体替换
b, 列表可以使用append(),extend(),insert(),remove(),pop()
元组没有
c, 列表可以使用切片,修改,访问,
元组只能访问
d, 元组比列表的处理速度快,
e, 列表不能作为字典的键