一、序列结构介绍
Python中的序列类型有很多种:
字符串、列表、元组、字典
二、列表
列表是对传统数值的一种使用包装,但是与传统数组使用最大的不同在于,Python中的列表的内容是允许进行动态修改的
在Python中进行列表的定义直接使用 中括号([]) 就可以了
- 定义列表
列表可以通过索引进行访问,而索引的下标是从0开始的,结束是列表的长度 - 1
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu']
#列表可以通过索引的形式进行访问
print(infos[0],end='、')
print(infos[1],end='、')
print(infos[2])
执行结果:

注意1:空列表不等同于None
# coding=UTF-8
list_a = []
list_b = None
print('第一个列表的地址:%d,对应的数据类型:%s' % (id(list_a),type(list_a)))
print('第二个数据的地址:%d,对应的数据类型:%s' % (id(list_b),type(list_b)))
执行结果:

注意2:索引的范围不能超出列表的可用范围,否则会出现索引错误(下标越界)
注意3:Python中的列表可以进行反向的索引访问
# coding=UTF-8
list_a = ['zhangsan','lisi','wangwu']
#反向索引访问
print(list_a[-1],end='、')
print(list_a[-2],end='、')
print(list_a[-3])
执行结果:

注意4:Python中的列表中大部分的情况下都会使用相同的数据类型,但是在列表里面却可以保存不同的数据类型
# coding=UTF-8
list_a = ['zhangsan',True,100]
#反向索引访问
print(list_a[-1],end='、')
print(list_a[-2],end='、')
print(list_a[-3])
执行结果:

- 使用for循环迭代
# coding=UTF-8
list_a = ['zhangsan','lisi','wangwu']
print('姓名:',end='')
for item in list_a:
print(item,end='、')
执行结果:

# coding=UTF-8
list_a = ['zhangsan','lisi','wangwu']
for index in range(len(list_a)):
print(list_a[index],end='、')
执行结果:

- 依据索引修改数据内容
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu']
for item in infos:
print(item,end='、')
print()
infos[1] = 'sunliu'
for item in infos:
print(item,end='、')
执行结果:

- 列表的加法及乘法运算
# coding=UTF-8
infos1 = ['zhangsan','lisi','wangwu'] * 3
for item in infos1:
print(item,end='、')
print()
infos2 = ['zhangsan','lisi','wangwu'] + ['sunliu','zhaoqi']
for item in infos2:
print(item,end='、')
执行结果:

三、数据分片
列表中存在很多的内容,如果我们需要只对其中的一部分内容进行操作,那么就需要进行分片处理
Python中的分片操作
列表对象(变量) [开始索引:结束索引:步长]
- 数据分片实例
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu','sunliu','zhaoqi','xiaoming']
#截取3~6的数据
print('截取的第一段数据内容:%s' % infos[3:6])
#截取2到最后的数据
print('截取的第二段数据的内容:%s' % infos[2:])
#截取从开始到5的数据
print('截取的第三段数据的内容:%s' % infos[:5])
#截取从2到6的数据步长为2
print('截取的第四段数据内容:%s' % infos[2:6:2])
执行结果:

- 通过分片替换数据
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu','sunliu','zhaoqi','xiaoming']
#以列表形式进行数据替换
infos[2:4] = ['你好啊']
#输出替换的信息
print('替换后的信息:%s' % infos)
#以字符串进行数据替换
infos[2:4] = '我很好啊'
#输出替换信息
print('替换后的内容:%s' % infos)
执行结果:

注意:如果使用的是以列表形式进行替换会显示一个整体
如果是字符串进行替换,就会将字符串进行分片添加
如果进行有步长操作的替换,就要有相同个数的数据
可以进行空列表的替换
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu','sunliu','zhaoqi','xiaoming']
#进行空的替换相当于删除
infos[2:4] = []
print('替换后的结果:%s' % infos)
#步长的替换
infos[0:3:2] = ['1','2']
print('替换后的内容:%s' % infos)
执行结果:

四、成员运算符
如果我们要判断某一个数据是否存在列表中,这个时候传统的做法就是进行迭代操作(Python中最愚蠢的做法)
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu','sunliu','zhaoqi','xiaoming']
name = 'sunliu'
flag = False
for item in infos:
if name == item:
flag = True
if flag:
print('数据查找到了')
执行结果:

- Python中的专门的运算符
in()、not in()
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu','sunliu','zhaoqi','xiaoming']
name = 'sunliu'
if name in infos:
print('数据可以查找到!')
else:
print('没有匹配结果!')
执行结果:

五、列表的操作函数
- 容量的修改 :append()、insert()、remove()、pop()、extend()、del
# coding=UTF-8
infos = []
print('初始化的列表长度:%d' % len(infos))
infos.append('张三')
infos.insert(0,'李四')
print('追加后的列表长度:%d,列表的内容:%s' % (len(infos),infos))
执行结果:

append()函数是在列表的最后进行数据的追加的,而insert()是在指定的索引位置上进行添加的,添加后其它数据向后移动
# coding=UTF-8
infos = []
print('初始化的列表长度:%d,地址:%d' % (len(infos),id(infos)))
infos.append('张三')
infos.insert(0,'李四')
print('追加后的列表长度:%d,列表的内容:%s,列表的地址:%d' % (len(infos),infos,id(infos)))
infos.extend(['王五','孙六'])
print('再次追加后的列表长度:%d,列表的内容:%s,列表的地址:%d' % (len(infos),infos,id(infos)))
执行结果:

在列表扩充的操作里边确实是在一个内存空间中来完成的
列表的copy()操作
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu']
msg = infos.copy()
print('infos列表的地址:%d,列表的内容:%s' % (id(infos),infos))
print('msg列表的地址:%d,列表的内容:%s' % (id(msg),msg))
执行结果:

列表的删除操作
remove()函数是根据内容进行删除的
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu']
print('数据删除之前的内容:%s' % infos)
if 'lisi' in infos:
infos.remove('lisi')
print('数据删除后的内容:%s' % infos)
执行结果:

del可以根据索引来删除数据
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu']
print('数据删除之前的内容:%s' % infos)
del infos[2]
print('数据删除后的内容:%s' % infos)
执行结果:

根据索引删除数据pop()函数
# coding=UTF-8
infos = ['zhangsan','lisi','wangwu']
print('数据删除之前的内容:%s' % infos)
infos.pop(2)
print('数据删除后的内容:%s' % infos)
执行结果:

- 数据处理函数:reverse()、sort()
本文详细介绍了Python中的序列结构,重点讲解了列表的创建、访问、修改、分片、成员运算符以及常用操作函数。通过实例展示了列表的动态修改、数据分片技巧、成员运算符的使用,如`in`和`not in`,以及列表的容量修改方法,如`append()`、`insert()`、`remove()`、`pop()`、`extend()`和`del`。此外,还讨论了列表的复制和删除操作。
186

被折叠的 条评论
为什么被折叠?



