一、List列表基础语法和操作:
Python的列表也有索引:第一个索引是0,第二个索引是1,依此类推。
Python中List,它可以作为一个方括号内的逗号分隔值出现,且列表的数据项可以为不相同的类型。
List是序列可以进行的操作包括索引,切片,加,乘,检查成员。
List实例:
name = ['Michael', 'Bob', 'Tracy']
a = [5, 2, 3, 1, 4]
li = [{"day":2},{"day":1},{"day":3}]
jor =[5,'1',{"day":1}]
List创建:
list1 = [ ]
list2 = [2, 3, 4]
list3 = ["red", "green"]
list4 = [2, "three", ,{"day":1}] #一个列表里面可以包含不同类型的元素
List访问:
List[0] #取第一个值
List[0:5] #取前五个值
List[-1] #取最后一个值
List[-2:] #取最后两个值
List更新、追加和删除:
L1 = ['Google', 'Runoob', 'Taobao']
L1[1] = 'Great' # 更新
L1.append('Baidu') # append()方法追加
print(L1) # 结果为 ['Google', 'Great', 'Taobao', 'Baidu']
del L1[2] # 删除索引为2元素
print(L1) # 结果为 ['Google', 'Great', 'Baidu']
List排序:
List.sort() #正向排序
List.reverse() #反转列表
List.sort().reverse() #先正向排序再反转列表,就是反向排序
List切片:
#列表切片,切取索引从a到b-1的元素
sample[a:b]
#列表切片,切取索引从a到结束的元素
sample[a:]
#列表切片,切取索引从0到b-1的元素
sample[:b]
#列表复制,切取所有并赋值给一个变量
variable_name=sample[:]
List解析:详见 Barry_Lhs 编写的 Python列表解析式
[表达式 for 元素 in 可迭代对象 if 条件] list2 = [ x*0.5 for x in list1 if x <3]
>>> list1 = [x for x in range(5)]
>>> list1
[0, 1, 2, 3, 4]
>>> list2 = [0.5 * x for x in list1]
>>> list2
[0.0, 0.5, 1.0, 1.5, 2.0]
>>> list3 = [x for x in list2 if x < 1.5]
>>> list3
[0.0, 0.5, 1.0]
嵌套列表:
使用嵌套列表即在列表里创建其它列表,例如:
>>>a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>> x
[['a', 'b', 'c'], [1, 2, 3]]
>>> x[0]
['a', 'b', 'c']
>>> x[0][1]
'b'
二、List中一些常用方法:
1、List元素去重:
>>> a
[1, 2, 2, 3, 6, 8]
>>> a = list(set(a))
>>> a
[1, 2, 3, 6, 8]
>>>
2、List合并:
Python将多个list合并为1个list,可以使用"+"号完成操作,或使用extend方法。
3、Python列表函数:
1 | len(list) 列表元素个数 |
2 | max(list) 返回列表元素最大值 |
3 | min(list) 返回列表元素最小值 |
4 | 将元组转换为列表 |
4、Python常用方法:
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort( key=None, reverse=False) 对原列表进行排序 |
10 | list.clear() 清空列表 |
11 | list.copy() 复制列表 |
使用注意问题:
L.index(value[,begin[,end]])
- 返回对应元素的索引下标,
- begin为开始索引,end为结束索引
- 当 value 不存在时触发ValueError错误
L.insert(index,obj):在指定位置插入元素
- index:索引值,插入到索引值之前
L.count(x):返回列表中x的个数(没有,返回0)
L.remove(value):从列表中删除值
- 只删除第一次出现的value
- 需要知道value
L.copy():复制列表(生成新的id值;只复制一层,不复制深层对象)
L.append(value)
- 向列表末尾追加单个元素
- L = [1,2,3]
L.append([6,7,8])
--> L = [1,2,3,[6,7,8]]
L.extend(list)
- 扩展,向列表追加列表
- L = [1,2,3]
L.extend([6,7,8])
--> L = [1,2,3,6,7,8]
也就是列表的合并
>>> L1 = [1, 2, 3, 4, 5]
>>> L2 = [20, 30, 40]
>>> L1.extend(L2)
>>> L1
[1, 2, 3, 4, 5, 20, 30, 40]
直接使用L1 + L2亦可
L.clear(): 清空列表
- 等同于 L[:] = []
L.sort(reverse = False):排序
- 将列表中的元素进行排序,默认顺序按值的小到大的顺序排列
L.reverse():列表的反转,改变原列表的先后顺序,返回值None
L.pop([index]):弹出元素
- 不加index时,默认删除最后一个元素,并返回删除元素的引用关系
- 删除索引对应的元素
求和 sum(list_name)
最大最小max(a) min(a)