1. 定义
有序的集合对象,可变的序列
-
[]
中包含任意对象的有序集合、通过偏移存取、可变长度、异构、支持嵌套 - 例如:
[]; [1, 2, 3]; [0,'1', [3,4],5]
2. 索引
- 与字符串类似,取出列表指定偏移量的单个对象,对列表指定索引赋值会原地修改列表
>>> list = [0,'1', [3,4],5]
>>> list[2],list[2][0]
([3, 4], 3) # 多层嵌套列表可以依次索引
>>> list[2][0]=5 # 将5赋值到指定位置
>>> list
[0, '1', [5, 4], 5] # 列表被原地修改
3. 分片
与字符串类似,提取列表部分内容生成新的列表
详情请参考字符串:
>>> list[0:-1]
[0, '1', [5, 4]]
>>> list[1:]
['1', [5, 4], 5]
4. 列表内置运算
4.1 +
加法 (合并,生成新列表)
>>> fruits=['apple','banana','orange']
>>> list + fruits
[0, '1', [5, 4], 5, 'apple', 'banana', 'orange']
4.2 *
乘法(重复,生成新列表)
>>> list*2
[0, '1', [5, 4], 5, 0, '1', [5, 4], 5]
4.3 len() 计算长度
>>> len(list)
4 # 逗号为分隔符,list中有4个对象
4.4 list()列表转换
括号里面参数为任意可迭代的对象:字符串、元组等
>>> list('123456') # 这里的list不是变量名,而是内置函数
['1', '2', '3', '4', '5', '6']
4.5 in测试
>>> 'apple' in fruits
True
>>> 'mango' in fruits
False
5. 列表函数方法
5.1 往列表中增加对象:
5.1.1 list.append() 末尾添加对象
In [3]:
names=['James','Emma','Emily','Charli']
names.append('Justin')
names #在列表末尾添加对象
Out[3]:
['James', 'Emma', 'Emily', 'Charli', 'Justin']
5.1.2 list.extend() 末尾添加可迭代的对象
In [4]:
names.extend(i for i in range(3))
names # 括号内容为列表推导式,日常使用需加[ ]
Out[4]:
['James', 'Emma', 'Emily', 'Charli', 'Justin', 0, 1, 2]
5.1.3 list.insert() 在列表指定偏移处插入对象
In [5]:
names.insert(0,'Tomas')
names # 按索引0位置,添加对象Tomas
Out[5]:
['Tomas', 'James', 'Emma', 'Emily', 'Charli', 'Justin', 0, 1, 2]
5.2 从列表中删除对象
5.2.1 list.pop() 移除列表指定偏移的对象并将该对象返回
In [6]:
dele = names.pop(-1) # 返回对象至变量dele
print('删除的是%s'% dele)
names
删除的是2
Out[6]:
['Tomas', 'James', 'Emma', 'Emily', 'Charli', 'Justin', 0, 1]
5.2.2 list.remove() 移除列表中某个值的第一个匹配项
In [7]:
names.remove('Emma')
names # 注意如果有相同对象,只会删除第一个
Out[7]:
['Tomas', 'James', 'Emily', 'Charli', 'Justin', 0, 1]
5.3 对列表中对象排序
5.3.1 sort()
In [13]:
alphabet = ['v','a','t','u','w','a']
alphabet.sort()
alphabet
Out[13]:
['a', 'a', 't', 'u', 'v', 'w']
In [14]:
alphabet.sort(reverse=True) # 降序排列
alphabet
Out[14]:
['w', 'v', 'u', 't', 'a', 'a']
5.4 列表对象查找
5.4.1 count() 统计某个对象在列表中出现的次数
In [15]:
alphabet.count('a') #计算字母a的个数
Out[15]:
2
5.4.2 index() 从列表中找出某个值第一个匹配项的索引位置
In [19]:
print(alphabet)
alphabet.index('a')
['w', 'v', 'u', 't', 'a', 'a']
Out[19]:
4
总结:
- 和字符串一样,列表也可以做切片操作
- 列表是可变对象,注意函数方法使用的时候,是否会改变列表本身。
网友评论