1). List列表
- list类,列表,有序的(下标从0开始),元素可以被修改
- list 类、中括号括起来,逗号分割每一个元素。
- 列表中可以是数字、字符串、列表<嵌套>、元组、布尔值,字典等等,
- 列表创建了可以修改<用索引> 。
- list类的一个对象,集合,内部可以放置任何东西,支持
for
while
循环。
- 切片使用案例
li = [1, 12, 9, "age", ["唐纳德", ["19", 10], "詹姆斯·高斯林"], "alf", True]
2). list切片获取元素
# 索引取元素
li[4][0]
# 切片取值,0~倒数第四个4 结果也是一个列表,要头不要尾
li[0:-3]
# 将列表后面5个全取出
li[-5:]
# 从开始到2
li[:3]
# 全部取出来
li[:]
# 以步长取数
li[0:7:2]
3). list切片修改元素
# 给相应的一个元素修改赋值
li[1] = [1,2,3,4,5]
# 利用切片的方法给列表中对应的元素赋值
li[1:3] = [120,90]
# 批量修改,很少用,会将字符串拆开
li[4:6] = 'haha'
4). list切片删除元素
# 删除列表中的一个元素
del li[1]
# 用切片的方法删除多个元素
del li[1:3]
# 全清空
del li[:]
5). list集合运算相关
# 判断一个元素是否包含在该列表中
print(12 in li)
print(12 not in li)
# 扩展拼接
f = li + li
6). 字符串、列表相互转换
# 转换成['a', 'b', 'c', 'd', 'e', 'f', 'g']
# 然而数字类型不可以用循环迭代,不可以转换
s = 'abcdefg12345'
new_s = list(s)
# 前提是列表全部为字符串
li = ['sdg','df','df','df']
print(''.join(li))
# 当列表包含多种元素想拼接转换为字符串,只能用for循环
li = [11,22,33,'123','alf']
print(str(li))
# 只能转化为"[11,22,33,"123","alf"]"
new_li = ''
for i in li:
new_li += str(i)
7). list内置函数
自带函数的源码中,self表示用自身对象引用方法,index表示索引,value代表值
- 数据演示示例
li = [11, 22, 33, 22, 44]
- 追加元素
# 在列表后面追加元素
li.append(5)
li.append("alf")
li.append([1234,2323])
- 清空列表
li.clear()
- 浅拷贝
v = li.copy() # 拷贝,浅拷贝,只拷贝父对象
- 计算元素出现的次数
v = li.count(22)
- 拓展追加列表
li.extend([9898,"不得了",[1,2]])
# 扩展原列表,参数为一个可迭代对象,
for i in [9898,"不得了",[1,2]]:
li.append(i)
# 一个一个字符追加
li.extend("不得了")
# 元组,效果同上
li.extend((11,22,33,))
- 根据值获取当前值索引位置(左边优先)
v= li.index(22)
- 在指定索引位置插入元素
li.insert(1, 99)
print(li)
- pop操作:指定索引,删除对饮的值;默认删除最后一个,并返回被删除的值
v = li.pop()
f = li.pop(1)
- 删除列表中的指定的一个值,只能是value,不能为index,左边优先
li.remove(22)
列表删除的方法总结:
li.pop()
li.remove()
del li[0]
del li[7:9]
li.clear()
- 将当前列表进行翻转
li.reverse()
- 排序,默认从小到大排序
li.sort() # 列表的排序
li.sort(reverse=True) #列表的排序,从大到小排序
- 使用内置函数排序
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
# lambda表达式 sort by age
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
sorted(student_tuples, key=lambda student: student[2])
- 拓展:对对象实现排序
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
sorted(student_objects, key=lambda student: student.age) # sort by age
# [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
- 拓展:解压序列
a, b, c = (1,2,3) #解压序列 ,必须一一对应
a, *_, b = [1, 2, 3, 4, 5] #: a = 1; _ =[2,3,4]; b = 5 _ 也可以写成其他
网友评论