第六节:列表

1 篇文章 0 订阅
1 篇文章 0 订阅

第六节:列表

序列

  1. 基本概念
    序列是Python中最基本的⼀种数据结构。序列⽤于保存⼀组有序的数据,所 有的数据在序列当中都有⼀个唯⼀的位置(索引)并且序列中的数据会按照添加的顺序来分配索引
    数据结构指计算机中数据存储的⽅式
  2. 序列的分类
    可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
    不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)

列表

列表是Python中的⼀个对象
列表的作⽤:列表中可以保存多个有序的数据;列表是⽤来存储对象的对象

  1. 列表的使用
    列表的创建:通过[]来创建⼀个空列表
    列表可以通过索引(index)或者下标来获取列表中的元素;索引是从0开始的,如print(list[0]),当list[负数],-1是最后一个,然后从右往左。
  2. 切片
    切⽚是指从现有列表中获得⼀个⼦列表;通过切⽚来获取指定的元素
    语法: 列表[起始 : 结束 : 步⻓] 通过切⽚获取元素时,会包括起始位置的元素,不会包括结束位置的元素即左闭右开
    起始位置和结束位置的索引可以不写:
    如果省略结束位置, 则会从当前的开始位置⼀直截取到最后
    如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结束的元素
    如果开始位置和结束位置都省略, 则会从第⼀个元素开始截取到最后⼀个元素
    步⻓表示每次获取元素的间隔,默认是1(可以省略不写)
    步⻓不能是0,但可以是负数,如[ : :-1]

通用操作

  1. + 和 *
    + 可以将两个列表拼接成⼀个列表
    + * 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)
list1=[1,2,3]+[1,2,3]
list2=2*[1,2,3]
  1. in和not in 用来检查指定元素是否在/不在列表中,输出的是布尔值(false或true)
  2. len()求列表的长度
  3. max() 求列表中的最大值
  4. min() 求列表中的最小值
  5. list.index(元素) 指定元素在列表中的位置
    例如:
list=[2,3,4,5,6,4,2,4]
print(list.index(2))

index默认找第一个被索引的元素位置
还可以通过list.index(元素,a,b),a是开始位置,b是结束位置
7. list.count() 是指定元素在列表中出现的次数
例如:

list=[2,3,4,5,6,4,2,4]
s='Before the sunset'
print(list.count(2))
print(s.count('e'))

修改列表

  • 通过索引复制来修改
    list[5]=替换元素
  • 通过切⽚来修改(起始就是给切⽚的内容重新赋值,但是赋值的内容必须是⼀个序列或列表)
    当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致
    list = [起始:结束]=字符串或者列表
    在这里插入图片描述
  • 删除元素:
    del list[起始 : 结束]
    list[a:b]=[] #等于空即删除切片处的元素,只适用于可变序列即列表,字符串不行
 s='python'
 #  s[0]='j'  会报错,因为字符串是不可变序列,不适用
 s=list(s)#将s变成可变序列,即转换为列表
 s[0]='j'

列表的方法

  • append() 像列表的最后添加⼀个元素
list=[2,3,4,5,6,4,2,4]
list[8:8]=5 #在最后插入一个数值
list.append(5)
  • insert(arg1,arg2) 像列表指定位置插⼊⼀个元素 参数1:要插⼊的位置 参数 2:要插⼊的元素
list=[2,3,4,5,6,4,2,4]
list[8:8]=5 #在最后插入一个数值
list.insert(7,5)
  • extend( i t e r a b l e ) 使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素 添加到列表中) 参数需要传递⼀个序列
    它和列表‘+’的区别是,‘+’只能相同类型的相加,字符串和列表就不能相加;而extend可以
list=[2,3,4,5,6,4,2,4]
list.extend([7])#等价于list+=[7]
print(list)
  • clear()清空序列
  • pop() 根据索引删除并返回指定元素
list=[2,3,4,5,6,4,2,4]
lst=list.pop(4)#删除列表中的6,并返回到lst中,及lst=6
print(list)
  • remove() 删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)无返回值
list=[2,3,4,5,6,4,2,4]
list.remove(4)#删除列表中的第一个4
print(list)
  • reverse() 翻转列表
  • sort(key=None,reverse=False) ⽤来对列表中的元素进⾏排序 reverse=True反序;=False 正序
list=[2,3,4,5,6,4,2,4]
list.sort()  或者list.sort(reverse=False)#给列表从小到大排列
list.sort(reverse=True)#给列表降序
print(list)

遍历列表

  1. for循环
    通过for循环来遍历列表
语法:
for 变量 in 序列(遍历的规则):
 代码块
list=[2,3,4,5,6,4,2,4]
for h in list:
	print(h)
  • 注意: for循环的代码块会执⾏多次,序列中有⼏个元素就会执⾏⼏次。每执⾏⼀次就会将序列中的⼀个元素赋值给变量,所以我们可以通过变量来获取列表
    中的元素
  1. range(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)
for i in range(5):
	print(hello world)

练习题

  • 给用户9次机会 猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对。
lst=[1,2,3,4,5,6,7,8,9,10]
for l in range(len(lst)-1):
    number=int(input('请输入一个数字'))
    print('您输入到的答案不正确')
    for j in range(len(lst)-1):
        if number==lst[j]:
            del lst[j]
print('正确号码是',lst[0])

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值