study-sixth

数据结构之列表

1.序列(sequence)

1.1基本概念

  • 序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引。
  • 数据结构指计算机中数据存储的方式。

1.2序列的分类

  • 可变序列(可以通过赋值的方式改变序列中的元素):例如 列表(list) 字典(dict)
  • 不可变序列(序列中的元素不能改变):例如 字符串(str) 元组(tuple)

2.列表

  • 列表是Python中的一个对象
  • 列表的基本作用
    1.用来保存多个有序的数据
    2.列表是用来存储对象的对象

2.1列表的运用

  • 创建列表:[]创建一个空列表

s=[]#创建的空列表
lst=[1,‘java’,None,max(1,2,3)]#列表可以保存任意对象

我们可以通过索引来获取列表中的元素

lst=[1,2,3,4,5,6]
print(lst[0])#获取第一个元素
print(lst[6])#超出范围
print(lst[-1])#获取最后一个元素,-2表示倒数第二个元素

  • 列表的长度为列表最大索引值加1

2.2切片

  • 切片是指从现有列表中获得一个子列表,这是一个新的列表,对原来的列表不产生影响。
  • 通过切片来获取指定的元素
  • 语法:列表[起始:结束:步长]
  • 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素

lst=[10,20,30,50,40]
print(lst[0:2])#输出前两个数字,不会输出第三个
输出:[10,20]

  • 起始位置和结束位置的索引可以不写
    1. 如果省略结束位置,则会从当前的开始位置一直截取到最后

print(lst[1:])
输出:[20,30,50,40]

  1. 如果省略开始位置。则会从第一个元素截取到结束的元素,但是不包括结束的元素

print(lst[:3])
输出:[10,20,30]

  1. 如果开始位置和结束位置都省略,则会从第一个元素开始截取到最后一个元素

print(lst[:])
输出:[10,20,30,50,40]

  • 步长表示每次获取元素的间隔,默认是1(可以省略不写)
  • 步长不能是0,但是可以为负数

print(lst[0:4:2])
输出:[10,30]
print(lst[0:2:-1])
输出:[] 空列表
print(lst[4:0:-1])
输出:[40,50,30,20]
print(lst[::-1])
输出:[40,50,30,20,10]反过来输出

3.通用操作

  • +和*
  1. +可以将两个列表拼接成一个列表

lst=[1,2,3]+[4,5,6]
print(lst)
输出:[1,2,3,4,5,6]

  1. *可以将列表重复指定的次数(注意2个列表不能做乘法,要和整数做乘法运算

lst = [1,2,3] * [4,5,6]
print(lst)
#TypeError: can’t multiply sequence by non-int of type ‘list’
lst=[1,2,3]*2
print(lst)
输出:[1,2,3,1,2,3]

  • in 和 not in
  1. in用来检查指定元素是否在列表当中

print(10 in lst)
#在就返回True

  1. not in用来检查元素是否不在列表中
  • len()获取列表中元素的个数

print(len(lst))
6

  • max()获取列表中最大值
  • min()获取列表中最小值
  • list.index(x,[,start[,end]])

lst=[10,20,30,10,20,30]
lst.(index(10))
输出:10在列表中的位置(默认获取第一个)
print(lst.index(10,2,5))#2,5表示指定的范围内

  1. 第一个参数 获取指定元素在列表中的位置
  2. 第二个参数 表示查找的起始位置
  3. 第三个参数 表示查找的结束位置

函数和方法的区别
xxx() 函数(function)
例如:len()

xxx.yyy() 方法 比较特殊的函数(method)
例如:lst.index()

  • list.count(x)统计指定元素在列表中出现的个数

print(lst.coint(10))
输出:2

4.修改列表

  • 切片修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)

lst=[1,2,3,4,5,6]
lst[0]=9
print(lst)
输出[9,2,3,4,5,6]

  • 当设置了步长时,序列中元素的个数必须和切片元素中的个数保持一致

lst[0:3]=‘1234’
print(lst)
输出:[‘1’,‘2’,‘3’,‘4’,4,5,6]

  • 通过切片来删除元素
  1. del list[起始:结束]关键字

del list[1]
print(lst)
输出:[1,3,4,5,6]

  1. list=[ ]

lst[0:3]=[]
输出:[4,5,6]

  • 类型转化

s=‘adafdfs’
k=list(s)
print(k)
输出:[‘a’,‘d’,‘a’,‘f’,‘d’,‘f’,‘s’]

5.列表的常用方法

  • s.append()向列表的最后添加一个元素

lst.append(33)
输出:[1,2,3,4,5,6,33]

  • s.insert(arg1,arg2)向列表指定位置插入一个元素(参数1:要插入的位置 参数2:要插入的元素)

lst.insert(0,33)
输出:[33,1,2,3,4,5,6]

  • s.extend()使用一个新的序列来扩展当前序列(它会将该序列中的元素添加到列表中)参数需要传递一个序列

lst.extend([3,4])
输出:[1,2,3,4,5,6,3,4]<==>lst+=[3,4]

  • s.pop()根据索引删除并返回指定元素

s=lst.pop(3)
print(s)
输出:4 #不传递索引则默认删除最后一个

  • s.remove()删除指定元素(如果相同值的元素有多个,只会删除第一个)没有返回值

s=lst.remove(3)
print(s)
输出:None
print(lst)
输出:[1,2,3,5,6]

  • s.reverse()翻转列表

lst.reverse()
print(lst)
输出:[6,5,4,3,2,1]

  • s.sort(key=None,reverse=False)用来对列表中的元素进行排序 reverse:True反序(降序);False 正序(升序)

lst.sort(reverse=True)
print(lst)
输出:[6,5,4,3,2,1]

6.遍历列表

6.1for循环

  • 通过for循环来遍历列表

语法
for 变量 in 序列(遍历的规则):
代码块

  • 注:for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素

6.2range(start,stop[,step])

参数说明

  • start:计数从start开始。默认从0开始。

range(5)<==>range(0,5);

  • stop:计数到stop结束,但不包括stop。

range(0,5)<==>[0,1,2,3,4]不包括5

  • step:步长,默认为1。

range(0,5)<==>range(0,5,1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值