Python序列复习

列表 List

列表是Python中的一个对象

  • 对象(object)就是内存中专门用来存储数据的一块区域
  • 之前我们学习的对象,像数值,它只能保存一个单一的数据
  • 列表中可以保存多个有序的数据
  • 列表是用来存储对象的对象
  • 列表的使用:
    1.列表的创建
    2.操作列表中的数据

切片

  1. 如果索引是负数,则从后向前获取元素,-1表示倒数第一个,-2表示倒数第二个 以此类推
  2. 列表[起始:结束]
  • 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
  • 做切片操作时,总会返回一个新的列表,不会影响原来的列表
  • 起始和结束位置的索引都可以省略不写
  • 如果省略结束位置,则会一直截取到最后
  • 如果省略起始位置,则会从第一个元素开始截取
  • 如果起始位置和结束位置全部省略,则相当于创建了一个列表的副本
  1. 语法:列表[起始:结束:步长]
  • 步长表示,每次获取元素的间隔,默认值是1
  • 步长不能是0,但是可以是负数,从列表的后部向前边取元素

在这里插入图片描述

序列(sequence)

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

序列的基本操作

操作符用法eg
+可以将两个列表拼接为一个列表my_list = [1,2,3] + [4,5,6]
*可以将列表重复指定的次数my_list = [1,2,3] * 5
in 和 not in用来检查指定元素是否存在于列表中print(‘22’ in stus)
len()获取列表中的元素的个数
min()获取列表中的最小值arr = [10,1,2,5,100,77] print(min(arr) )
max()获取列表中的最大值arr = [10,1,2,5,100,77] print(max(arr))
s.index()获取指定元素在列表中的第一次出现时索引 ,第二个参数,表示查找的起始位置 , 第三个参数,表示查找的结束位置print(stus.index(‘黄’,3,7))
s.count()统计指定元素在列表中出现的次数print(stus.count(‘王’))

可变对象

  • 每个对象中都保存了三个数据:
    id(标识)
    type(类型)
    value(值)

  • 列表就是一个可变对象
    a = [1,2,3]

  • a[0] = 10 (改对象)
    - 这个操作是在通过变量去修改对象的值
    - 这种操作不会改变变量所指向的对象
    - 当我们去修改对象时,如果有其他变量也指向了该对象,则修改也会在其他的变量中体现

  • a = [4,5,6] (改变量)
    - 在给变量重新赋值
    - 会改变变量所指向的对象
    - 为一个变量重新赋值时,不会影响其他的变量

一般只有在为变量赋值时才是修改变量,其余的都是修改对象

不可变对象

元组 tuple

  1. 使用()来创建元组
  2. 当元组不是空元组时,括号可以省略;
  3. 如果元组不是空元组,它里边至少要有一个,
my_tuple1 = ()
my_tuple1 = (1,2,3,4)
my_tuple2 = 1,2,3,4
my_tuple3 = 1,
  1. 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
    也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素,不能同时出现两个或以上的*变量
a , b , *c = my_tuple
a , *b , c = my_tuple
*a , b , c = my_tuple
print(a,b,c)

在这里插入图片描述

字典(dict)

  • 字典属于一种新的数据结构,称为映射(mapping) 字典的作用和列表类似,都是用来存储对象的容器
  • 在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素,键值对(key-value)结构
  • 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)
API用法
{}d1={‘a’:69,‘v’:88} 或者 dict ={}
dict()d2 = dict(name=“haha”,age=“gg”)
[双值子序列]print(‘双值’,‘ab’,’[c,d]’,(‘a’,3) ,print(‘子序列’,[(1,2),(23,5,3),‘ab’,[1,2]] ,print(‘双值子序列’,[(1,2),(2,3),‘ab’,[1,2] ) , d3 = dict([(“text”,2),(‘a’,‘b’),‘gb’,1,22]) print(d3[‘g’])
len()获取字典中的值,根据键来获取值
d[key]d[‘age’]) ,如果键不存在,会抛出异常 KeyError
not in ,in检查字典中是否不包含指定的键,是否包含指定的键
get(key[, default])如果获取的键在字典中不存在,会返回None ; 也可以指定一个默认值,来作为第二个参数,这样获取不到值时将返回默认值
d[key] = value如果key存在则覆盖,不存在则添加
setdefault(key[, default])如果key已经存在于字典中,则返回key的值,不会对字典做任何操作 ; 如果key不存在,则向字典中添加这个key,并设置value
update([other])d = {‘a’:1,‘b’:2,‘c’:3} d2 = {‘d’:4,‘e’:5,‘f’:6, ‘a’:7 d.update(d2)
del d[‘a’]删除,可以使用 del 来删除字典中的 key-value
popitem()随机删除字典中的一个键值对,一般都会删除最后一个键值对 ,会将删除的key-value(一个元组)作为返回值返result=d.popitem()
pop(key[, default])如果删除不存在的key,会抛出异常,result = d.pop(‘d’) ;如果指定了默认值,再删除不存在的key时,不会报错,而是直接返回默认值
clear()用来清空字典
copy()法用于对字典进行浅复制,浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制
values()for value in d10.values(): print(value,end=’-----’)
keys()for key in d10.keys(): print(key,end=’-----’)
items()for k,v in d10.items():print(k,’-----’,v)

集合(set)

API用法
set()空集合,将序列和字典转换为集合(只会包含字典中的键)
{…}s = {10,3,5,1,2,1,2,3,1,1,1,1}
in和not in检查集合中的元素
len()获取集合中元素的数量
add()s.add(10)
update()将一个集合中的元素添加到当前集合中
pop()随机删除并返回一个集合中的元素
remove()删除集合中的指定元素
clear()清空集合
copy()对集合进行浅复制
&交集运算
|并集运算
-差集
^异或集 获取只在一个集合中出现的元素
<=检查一个集合是否是另一个集合的子集
<检查一个集合是否是另一个集合的真子集
>=检查一个集合是否是另一个的超集
>检查一个集合是否是另一个的真超集
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值