列表
基本概念
- 列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制
- 列表索引值以0为开始值,-1为从末尾的开始位置
- 列表可以使用+操作符进行拼接,使用*进行重复
- 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙
列表元素可以通过索引访问单个元素
列表
列表可以完成大多数集合类的数据结构实现
列表中元素的类型可以不相同,他支持数字,字符串甚至可以包含列表(所谓嵌套)
列表元素修改
列表大小没有限制,可以随时修改
列表元素可以随时修改
列表基本操作
列表操作符 | 操作符含义 |
---|---|
< list >*< 整数类型 > | 对列表进行整数次重复 |
len(< seq >) | 列表中元素个数 |
< list >[< 整数类型 >] | 索引列表中的元素 |
for< var >in < list >: | 对列表进行循环列举 |
< list >[< 整数类型>:< 整数类型>] | 取列表的一个子序列 |
< expr>in< list > | 成员检查,判断< expr >是否在列表中 |
< list1 >+< list2 > | 连接两个列表 |
列表相关方法
方法 | 方法含义 |
---|---|
< list >.append(x) | 将元素x增加到列表的最后 |
< list >.sort() | 将元素列表排序 |
< list >.reserve() | 将序列元素反转 |
< list >.index(x) | 返回第一次出现元素x的索引值 |
< list >.insert(i,x) | 在位置i处插入新元素x |
< list >.count(x) | -返回元素x在列表中的数量- |
< list >.remove(x) | 删除列表中第一次出现的元素x |
< list >.pop(i) | 取出列表中位置i的元素,并删除它 |
创建列表
>>>list((3,5,7,9,11)) #将元组转换为列表
[3,5,7,9,11]
>>>list(range(1,10,2)) #将range对象转换为列表range(开始,结束,步长)
[1,3,5,7,9] 从1到10(不包括10)每次加2
>>>list('hello world') #将字符串转换为列表,每个字符转换为列中的一个元素
['h', 'e' ,'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' ]
>>>list({3,7,5}) #将集合转换为列表,集合中的元素是无序的
[3,5,7]
>>>x=list() #创建空列表
>>>x=[1,2,3]
>>>del x #删除列表对象
>>>x #对象删除后无法再访问,抛出异常
data=list(range(10)) #列表为从1到10(不包括10)的数字
print(data[-1]) #-1表示最后一个元素的下标
print(data[15]) #15不是有效下标,抛出异常
元组
基本概念
- 元组(tuple)是包含多个元素的类型,元素之间用逗号分割(如:t1=(123,456,“hello”))
- 可以通过把若干元素放在一对圆括号中创建元组,如果只有一个元素的话则需要多加一个逗号(如:(3,))
- 也可以使用tuple()函数吧列表、字典、集合、字符串以及range对象、map对象、zip对象或者其他类似对象转换为元组
- 元组可以是空的,t2=()
- 一个元组也可以作为另一个元组的元素,此时,作为元素的元组需要增加括号,从而避免分歧(如:t3=(123,456,(“hello”,“world”)))
- 元组各元素存在先后关系,可以通过索引访问元组中的元素
- 元组定义后不能更改,也不能删除
- 与字符串类型类似,可以通过索引区来访问元组中的部分元素
- 与字符串一样,元组之间可以用+号和*号进行运算
切片操作 - 适用于列表、元组、字符串
- 切片是用来获取列表、元组、字符串等有序序列中部分元素的一种语法。在形式上,切片使用2个冒号分隔的3个数字来完成
- [start:end:step]
- 其中第一个数字start表示切片开始位置,默认为0;第二个数字表示切片截止(但不包含)位置(默认为列表长度);第三个数字表示切片的步长(默认为1),省略步长时还可以同时省略最后一个冒号
- 当step为负整数时,表示反向切片,这使start应该在end的右侧
data=list(range(20))
print(data[ : ]) #获取所有元素的副本
print(data[-3: ]) #最后3个元素
print(data[ : -5]) #除最后5个元素之外的所有元素