第3章 列表、元组、字典

本文介绍了Python中列表、元组和字典的基础操作,包括它们的创建、增删改查方法。重点讲解了列表的append、extend、insert方法,以及字典的访问、增加、删除和修改元素的方法。同时,还涵盖了序列解包、序列封包等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

列表[ ]:按顺序存放元素,有索引,可修改

元组( ):按顺序存放元素,有索引,不可修改

字典{ }:以键值对存放数据,无索引,其中,key是不可变的

  • 字符串、range、列表、元组皆为序列类型
  • 【(’a’)】是字符串加括号,不是元组;【(‘a’,)】是只有一个元素的元组

# 3.2 列表与元组的通用用法(不涉及修改元素)

  1. 索引:正数从0开始,负数从-1开始——倒数第一个元素
  2. 子序列 slice() [start : end : step]:含start,不含end;start, end可以是负数
  3. 加法:列表 + 列表,元组 + 元组,列表与元组不能直接相加
  4. 乘法:将元素重复N次,得到新的列表或元组
  5. in:str in tuple 或者 str in list 返回bool类型
  6. 长度、最值:len(),max(),min() 若元素为字符串,比较ASCII编码的值
  7. 序列封包:把多个值赋给同一变量时,python会把多个值封装成元组
>>> a = 1,2,3
>>> a
(1, 2, 3)
  1. 序列解包:将序列赋值给多个变量,要求变量个数 = 元素个数 序列可以是元组或者列表
>>> a,b = (1,2)
>>> print(a,b)
1 2
  1. 同时运用序列封包与序列解包
>>> a,b,c = 1,2,3
>>> print(a,b,c)
1 2 3
  1. 还可以只序列解包一部分,余下部分仍然以元组或列表形式保存,用【*】标示
>>> a,b,*c = 1,2,3,4
>>> print(a,b,c)
1 2 [3, 4]

# 3.3 列表用法

直接创建:[ ]

将元组、区间range转换成列表:list()——类似地,将列表、区间转换成元组可用tuple()

3.3.2 增加列表元素

append() 只接收一个元素,这个元素可以是元组、列表

extend() 可以追加多个元素,接受区间、元组、列表

insert() 可以指定元素插入的位置,例:L.insert(index, 元素)

3.3.3 删除列表元素

根据索引删除

  1. 删除单个元素:del list1[0]
  2. 删除一段:del list1[0:3]
  3. 删除一段并指定步长:del list1[0:3:2]
  • del也可用于删除普通变量

根据元素删除

remove() 只删除第一个找到的元素,如果找不到,会报错

clear() 清空所有元素

>>> L = [1,2,1,2]
>>> L.remove(1)
>>> print(L)
[2, 1, 2]

3.3.4 修改列表元素

  1. 列表的元素相当于变量,可以直接赋值
>>> L = ['a']
>>> L[0] = 'b'
>>> print(L)
['b']
  1. slice()方法 替换、增加、删除。如果用step参数替换,前后元素数量要一致
#替换
>>> L = [1,2,3]
>>> L[1:2] = 'a'  #替换索引:1
>>> print(L)
[1, 'a', 3]

#增加
>>> L = [1,2,3]
>>> L[1:1] = 'a'  #给不存在的索引赋值即为增加
>>> print(L)
[1, 'a', 2, 3]

#删除
>>> L = [1,2,3]
>>> L[1:2] = []  #把要删除的索引设置为空值
>>> print(L)
[1, 3]

3.3.5 列表的其它方法

count() 计算元素出现的次数

index() 获取元素在列表中的位置(索引),可以指定查找位置:index(元素, start, end)

reverse() 反序

sort(key = …, reverse = …) 对列表进行排序。其中,key和reverse必须通过参数名指定

key:为每个元素生成一个比较大小的“键”

reverse:默认值为【False】,从小到大排序。也可设置为True

例:sort( key = len, reverse = True )——用len()函数处理每个元素并排序

pop() 将最后加入的元素列出列表,并返回这个元素。将列表当作“栈”使用,实现元素出栈

>>> L = []
>>> L.append(1)
>>> L.append(2)
>>> L.pop()
2
>>> print(L)
[1]

# 3.4 字典

D = {key1 : value1 , key2 : value2}

key可以是int, str, tup,不能是list——key不可变

创建字典:D = dict() 或者 { }

列表转字典

要求:元素都是元组/列表,且每组含2个元素

>>> L = [('a',1),('b',2)]
>>> D = dict(L)
>>> print(D)
{'a': 1, 'b': 2}

3.4.3 字典的基本用法

访问:[ ] 找不到时报错

增加:为不存在的key赋值: D[new_key] = 1

删除:del D[key]

修改:D[key] = 1

判断key是否存在:in, not in,返回bool值

3.4.4 字典的常用方法

clear() 清空

get() 相当于方括号。区别:找不到时返回None,而非报错

update(key1 : value1 , key2 : value2) 若key已存在,修改,若key不存在,增加

items(), keys(), values() 获取字典中的全部键值对、键、值,通常转存为列表:list( D.items() )

pop(key) 获取指定value,同时删除该键值对

popitem() 随机弹出一个键值对——假随机,其实是底层存储的末位

setdefault( key, value ) 若key存在,返回原value值,若key不存在,设置其默认值

fromkeys() 一次性给出多个key,并设置默认的value,通常用【dict】类直接调用

>>> dict.fromkeys([1,2],'OK')
{1: 'OK', 2: 'OK'}

3.4.5 用字典格式化字符串

在参数化符号【%s】中间,放入key名,用圆括号括起来。输出时key参数会转化为对应的值

>>> s = "my name is %(name)s"
>>> D = {'name' : 'Ailsa'}
>>> s % D
'my name is Ailsa'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ailsa2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值