Python基础篇列表


内容概要


• 1. 序列
• 1.1 基本概念
• 1.2 序列的分类
• 2. 列表(list)
• 2.1 列表的使用
• 2.2 切片
• 3. 通用操作
• 4. 修改列表
• 5. 列表的方法
• 6. 遍历列表
• 6.1 for循环
• 6.2 range()函数

1. 序列(sequence)

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


2. 列表(list)


• 列表是Python中的一个对象

[1,2,3] #被中括号包裹住的就是列表,里边的元素是列表元素,可以是任意类型

• 列表的作用
• 列表中可以保存多个有序的数据
• 列表是用来存储对象的对象

[1,2,3] #1是对象 而列表本身也是对象,存储着1   也就是存储对象的对象

2.1 列表的使用
• 列表的创建:通过[]来创建一个空列表

['任意元素',1,3.14]

2.2 切片
• 切片是指从现有列表中获得一个子列表
• 通过切片来获取指定的元素
• 语法: 列表[起始 : 结束 : 步长]
列表中的元素有对应的下标,和c语言数组相似,列表索引从0开始对应第一个元素,-1对应最后一个元素(末尾元素)

[12345]   [12345]
 0  1  2  3  4   -5 -4 -3 -2 -1
 正向索引           反向索引

• 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
• 起始位置和结束位置的索引可以不写
• 如果省略结束位置, 则会从当前的开始位置一直截取到最后
• 如果省略开始位置, 则会从第一个元素截取到结束的元素,但是不包括结束的元素
• 如果开始位置和结束位置都省略, 则则会从第一个元素开始截取到最后一个元素
• 步长表示每次获取元素的间隔,默认是1(可以省略不写)
• 步长不能是0,但可以是是负数

a=[1,2,3,4,5,6]
#省略结束位置
a[1:]   #从索引1开始一直截到最后
#[2, 3, 4, 5, 6]
#省略开始位置
a[:-1]  #从第一位开始一直到-1结束,但是不包括-1,因为到-1已经结束了。
#[1, 2, 3, 4, 5]
#省略开始和结束
a[:]    #可以 b=a[:]复制
#[1, 2, 3, 4, 5, 6]
#步长是正数
a[1:-1:2] 
'''步长默认为1,即一次走一步,也就是一个元素,步长为2就是两步,落脚点就是
取到的值,取到索引1位置的值(对应的值为2)然后开始走,第一步到索引2的位置(对
应的值为3),接下来第二步到索引3的位置,此时索引3就是落脚点,取到的也就是索
引对应的值 4,一以此类推一直到元素结束,
你可能会困惑,4再往下两步是6,为什么没有呢?
  因为上方贴片操作是从1位置开始到-1的位置结束,当到-1的时候,
  可以理解成是跳出循环,到-1的时候就跳出循环了,所以没有包含到当中'''
#[2, 4]
#步长是负数
a[-1:0:-2] 
#从索引-1的位置,每次走两步,到0结束,(和上方同理,)
#上方是正着走,这个是倒着走,也就是倒序
#[6, 4, 2]



3. 通用操作


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

a=[1,2,3]
b=[4,5,6]
a+b    #123456

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

a=[1,2,3]
print(a*3)
#123 123 123

• in 和 not in
• in用来检查指定元素是否在列表当中
• not in 用来检查指定元素是否不在列表当中
• len() 获取列表中元素的个数
#列表元素有多少个长度就是多少
• max() 获取列表中最大值
• min() 获取列表中最小值
• list.index(x[, start[, end]])
• 第一个参数 获取指定元素在列表中的位置
• 第二个参数 表示查找的起始位置
• 第三个参数 表示查找的结束位置

a=[1,2,1,2,3]
a.index(1,1,-1) #从索引1的位置开始到-1结束的位置查找1对应的索引
# 2  从索引1的位置开始,索引0位置的0就被忽略了,查找到的是索引2位置的1
#如果没有添加起始位置和结束位置的参数,就会返回查找到的第一个元素的索引

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

a=[1,2,1,2,3]
a.count(1)
#2 两次

4. 修改列表

• 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
• 当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致
• 通过切片来删除元素
• del list[起始 : 结束]

a=[1,2,3,4,5,6,7]
a[2:-2]=['a','b','c']
#[1, 2, 'a', 'b', 'c', 6, 7]

a=['a','b','c','d','e','f']
a[2:-2]  #除2到-3(到-2结束)以外的元素都会被删除
#['c', 'd']

• list = []
5. 列表的方法
• append() 像列表的最后添加一个元素

a=['a','b','c','d','e','f']
a.append('g')
#['a','b','c','d','e','f','g']

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

a=['a','b','c','e','f']
a.insert(3,'d')
# ['a', 'b', 'c', 'd', 'e', 'f']

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

a=['a','b','c']
b=['d','e','f']
a.extend(b)
# ['a', 'b', 'c', 'd', 'e', 'f']
#使用b扩展a序列

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

a=[1,2,3,4,5,6]
b=a.pop(1)
#b=2

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

a.remove(1)
#a=2,3,4,5,6

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

a=[1,2,3,4,5,6]
a.sort(reverse=True)
#[6, 5, 4, 3, 2, 1]   
#如果sort不加参数,则数字会按照从小到大排列,则字母会按照特定的值排列,
#a为最小 z为最大
a=['z', 'c', 'd', 'e','a', 'f']
a.sort()
#a=['a', 'c', 'd', 'e', 'f', 'z']
  1. 遍历列表
    6.1 for循环
    • 通过for循环来遍历列表
    语法
    for 变量 in 序列(遍历的规则):
    代码块
    • 注意: for循环的代码块会执行多次,序列中有几个元素就会执行几次。每执行一次就会将序列中的一个元素赋值给变量,所以我们可以通过变量来获取列表中的元素
a=[1,2,3,4,5,6]
for i in a:
  print('第%s次循环' %i)
  print('本次循环变量的值为%s'%(i))
#输出1次循环
本次循环变量的值为12次循环
本次循环变量的值为23次循环
本次循环变量的值为34次循环
本次循环变量的值为45次循环
本次循环变量的值为56次循环
本次循环变量的值为6

a=['张三','李四','小明']
for i in a:
  print('你好,'+i+'很高兴认识你')
#输出
你好,张三很高兴认识你
你好,李四很高兴认识你
你好,小明很高兴认识你

6.2 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(0,5):  #从0开始到5时就结束,所以不包含5
  print(i)
#输出
0
1
2
3
4
#有步长     取出1到10之间的奇数
for i in range(1,11,2):   #和切片步长同理,从1开始每次走两步取值 
						  #走第一步,此时元素是2,再走一步就是3
                          #1往下两步就是3,以此类推,一直到元素结束
  print(i)
#输出
1
3
5
7
9
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值