一,lis列表
list表的使用方法为[] 格式为:a1 = [4,45,6,54,23] 列表变量名 = [元素1,元素2,元素3] z,b = ['你','好'] 按照顺序进行赋值
还可进行分个赋值 a,b =[1,2]
c,e,*d = ['你','好','这','个','世','界']
print(c,e,d)
#打印结果你 好 ['这', '个', '世', '界']
还可以有不同的赋值方法 在*星号前的变量都还按照顺序进行赋值 成为单个变量与值 而加*星号的变量输出后成为list列表
#反之 在星号后面的 变量则还按照顺序赋值 单个赋值的变量找到对应的值进行输出
*d,c,e= ['你','好','这','个','世','界']
print(c,e,d)
#打印结果['你', '好', '这', '个'] 世 界
list 列表元素排列原则为 第一个元素 从零开始
e = list('nihaoshijie') #使用list()方法可以将字符串逐个放在list列表中
用list转换字符串成列表输出结果['n', 'i', 'h', 'a', 'o', 's', 'h', 'i', 'j', 'i', 'e', ' ']
排序方法之sort排序方法 :
e.sort()
#如果用sort方法升序排列字符串的话字符串就会按照每个字符的阿斯克码值进行升序排列
#用sort方法升序排列字符串打印结果[' ', 'a', 'e', 'h', 'h', 'i', 'i', 'i', 'j', 'n', 'o', 's']
sort函数可以对列表进行排序(升序)
list方法拓展
e1 = list(range(1,11)) #还可以用range配合list方法来遍历
#输出结果为1到10 的遍历 ,因为range函数包头不包尾
e2 = [x*2 for x in range(5)]
# 还可以在列表内定义表达式 然后进行遍历计算 x循环创建多个元素
#打印结果 [0, 2, 4, 6, 8]
e3 = [x*2 for x in range(100)if x%9 == 0] #并且可以在循环创建的基础上进行if过滤
#从1到100每次乘2,如果除以九并且余0被九整除的话那么则打印结果
#打印结果:[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
sort方法排序与其他排序方法遵守的内存原则:
a = [43,123,54,533,2,4]
a = [43,123,54,533,2,4] #id()函数可以测定变量的内存地址
print(id(a)) #39608008 sort排列前地址
a.sort() #使用sort函数之后测定a的内存地址是否发生改变
print(id(a)) #sort 排序后地址 39608008 说明sort排序可以重新排列列表内元素但是列表本身的地址不变
#打印结果 :[2, 4, 43, 54, 123, 533] sort 按照升序将列表a打印出来
sort函数从新排序后并不会影响地址
列表排列顺序方法之reverse函数:
a.sort(reverse=True)
#打印结果 : [533, 123, 54, 43, 4, 2]
如果将列表a降序输出的话需要用方法sort.(reverse=True)来进行降序输出
进行降序输出的方法还有reversed迭代器:
d = reversed(a) #reversed迭代器可以逆序迭代列表
print(d)
print(list(d)) #迭代后需要用list转为列表 但是注意迭代器只能用一次
#打印结果 :[2, 4, 43, 54, 123, 533]
排序方法拓展 shuffle函数:
import random
random.shuffle(a) #导入 random函数.shuffle方法会将列表随机打乱输出 (可以用来进行制作洗牌程序
过滤数值:
print(max(a)) #max 函数可以返回列表中的最大值 533
print(min(a)) #min 函数可以返回列表中的最小值 2
print(sum(a)) #sum 函数可以返回列表中的所有书的和 759
list列表添加及删除 不管在列表内进行添加或者删除的话都会改动列表内各个元素的位置,所以一般只在列表末尾进行添加或删除尽量减少在中间的数值的改动
e4 = [23,45,234]
#运算符操作 + 及方法加减插入列表元素
e4.append(566) #append函数默认在列表末尾进行添加元素
print(id(e4)) #append函数在添加元素后不会改变列表地址
# ID:39700104 地址不变
print(id(e4))
# ID:39700104 地址不变
e4 = e4+[1]
print(id(e4)) #而在进行加运算时会产生一个新的对象赋给列表 从而改变这个列表的地址
# ID:39699976 地址改变
e4.extend([2]) #用expend方法加元素地址仍然不会改变 效率较高 方法为加中括号
# ID:39700104 地址不变
e4.sort()
print(e4)
e4.insert(5,400) #insert方法同样会改变列表地址,插入的元素前的元素不变而插入的元素之后的元素全部向后拷贝
#列表元素的删除
del e4[0] #通过所以索引位置删除
# 打印结果[2, 23, 45, 234, 400, 566]
e4.pop() #pop删除默认删除最后一个元素
#打印结果[2, 23, 45, 234, 400]
e5 = ['aa','bb','cc','dd','ee','cc']
e5.remove('cc') #remove方法通过删除指定元素来进行 且删除这个列表内第一个出现的指定元素 如果不存在的话则报错
print(e5)
列表的访问和计数 一般列表访问可以通过下标索引来范文而访问的区间在0到列表长度-1 包头不包尾
e6 = [54,23,65,25,76,86] e6.sort()
print(e6[2]) #访问方法为 列表名称[下标索引位置] 来访问
#打印结果为 54
index 访问元素位置方法
print(e6.index(54,0,5))
#打印结果为2
index 可以访问列表内第一个出现的指定值可以接受区间范围的值 打印结果为在0到5的下标索引位置之间第一个 54在列表的第二个位置
count查询方法: 可以返回一个指定元素在列表内出现的次数
print(e6.count(76)) #打印结果为1 76 在列表中出现了一次
查询列表长度方法为len()
成员资格判断 如果想知道列表内是否存在此元素的话直接用 value in list查询即可
print(23 in e6)
#打印结果为True
如果存在则返回True 不存在则返回 flase
count 也可以通过count方法来判断是否存在此元素 count 方法也更方便
print(e6.count(23)>0)
#打印结果为True
如果在列表内出现次数大于零的话则为存在返回True不存在则返回flase
列表切片操作: silce : 可以快速提取列表或修改 格式为 , 开始,结束,步长
print(e6[1:4:1]) #从一开始到四包头不包尾
#打印结果[25, 54, 65]
e6[:] 这表表示提取列表内所有元素 e6[2:] 这样表示从2开始取
同样,可以用负数来搜 e6[-2:]这样表示从倒数第二个数开始提取所有得数 e6[-2:-4]负数切片同样执行包头不包尾
print(e6[::-1])
#打印结果: [86, 76, 65, 54, 25, 23] 直接反转
多维列表:
一维列表为存储一维,线性的数据 [1,2,3,4,]
那么如果要在列表没储存一个表格的数据呢
姓名 |
年龄 |
成绩 |
成绩是否优秀 |
丫丫 |
19 |
71 |
良好 |
小绿 |
18 |
93 |
优秀 |
小豪 |
19 |
82 |
良好 |
小宇 |
20 |
92 |
优秀 |
将表格信息用二维列表来储存数据
格式:
a = [['丫丫',19,71,'良好'],['小绿',18,93,'优秀'],['小豪',19,82,'良好'],['小宇',20,92,'优秀']] 列表套列表即为多维列表
for i in range(4):
for o in range(4):
print(a[i][o],end=' ')
print()
丫丫 19 71 良好
小绿 18 93 优秀
小豪 19 82 良好
小宇 20 92 优秀
通过两个变量来表示a后面的两个下标然后通过嵌套循环来遍历出来
列表 整理就此结束 如有后续添加请继续关注博客 谢谢
注:本博客为学习中记录要点个人摘录及记录学习点滴,如有纰漏还请多多指教 :D