01A08.Learning Python 5th-列表与字典

本文详细介绍了Python中的列表和字典两种数据结构。列表作为可变序列,支持索引、切片、拼接、重复等操作,并可通过迭代和推导进行元素处理。字典则是一种无序的键值对集合,可以通过键进行快速访问和修改。内容涵盖了基本操作、常用方法以及增删查改等实际应用示例。
摘要由CSDN通过智能技术生成

本笔记是基于《Python学习手册-原书第五版》第八章 列表与字典的个人理解。

列表和字典都是其他对象的集合,可以在原位置进行修改,按需求增长或缩短,可以包含任何种类的嵌套。

列表

列表是Python中最具灵活性的有序集合对象类型,可以通过偏移量访问,长度可变,可异构,可嵌套,属于可变序列,对象引用数组。

列表的基本操作

# 求列表的长度
>>> len([1,2,3])
3

# 列表的拼接
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]

# 列表的重复
>>> [1,2,3]*2
[1, 2, 3, 1, 2, 3]

# 列表转化为字符串会发生什么
>>> str([1,2])+'34'
'[1, 2]34'

# 字符串转化为列表会发生什么
>>> [1,2]+ list('34')
[1, 2, '3', '4']

列表的迭代和推导

# 把每个字符重复4次,存入列表
>>> L = [c*4 for c in 'Python']
>>> L
['PPPP', 'yyyy', 'tttt', 'hhhh', 'oooo', 'nnnn']
# 等效代码
>>> L = []
>>> for c in 'Python':
	L.append(c * 4)	
>>> L
['PPPP', 'yyyy', 'tttt', 'hhhh', 'oooo', 'nnnn']

# 将列表中的数值转变为绝对值
>>> list(map(abs, [-2,-1,0,1,2]))
[2, 1, 0, 1, 2]

索引、分片和矩阵

>>> L = ['Python','Java','C++']

# 索引
>>> L[2]
'C++'

# 切片
>>> L[1:3]
['Java', 'C++']

# 矩阵
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
# 矩阵第一行
>>> matrix[0]
[1, 2, 3]
# 矩阵第三行第一列
>>> matrix[2][0]
7

索引和切片对原位置修改

 L = ['Python', 'Java', 'C++']

# 通过索引进行原位置修改
>>> L[0] = 'C'
>>> L
['C', 'Java', 'C++']

# 通过切片进行原位置修改——覆盖
>>> L[1:3] = ['Python', 'Java']
>>> L
['C', 'Python', 'Java']

# 通过切片进行原位置修改——增长
>>> L[1:2] = ['C++', 'Javascrip']
>>> L
['C', 'C++', 'Javascrip', 'Java']

# 通过切片进行原位置修改——缩短
>>> L[1:2] = []
>>> L
['C', 'Javascrip', 'Java']

# 通过切片在开头增加
>>> L[:0] = ['C++','Python']
>>> L
['C++', 'Python', 'C', 'Javascrip', 'Java']

# 通过切片在末尾增加
>>> L[len(L):] = ['C#', 'Go']
>>> L
['C++', 'Python', 'C', 'Javascrip', 'Java', 'C#', 'Go']

列表的常用方法

其中pop()方法和append()方法联合使用可以实现后进后出的栈结构。

增
>>> L = [1,2,3]
# extend()方法对列表末尾,是对原列表的扩展
>>> L.extend([4,5])
>>> L
[1, 2, 3, 4, 5]
# append()方法对列表末尾增加,参数作为一个整体
>>> L.append([6,7])
>>> L
[1, 2, 3, 4, 5, [6, 7]]
# reverse()方法对列表进行倒序
>>> L.reverse()
>>> L
[[6, 7], 5, 4, 3, 2, 1]

# insert方法在偏移量处插入元素
>>> L.insert(1,'Javascrip')
>>> L
['Python', 'Javascrip', 'Java', 'C++', 'C']

删
# pop方法删除偏移量位置的元素并返回它的值
>>> L = [1,2,3,4]
>>> L.pop(2)
3

# del语句删除列表某个位置或某个段落
>>> L = ['Python','Java',"C++"]
>>> del L[0]
>>> L
['Java', 'C++']

>>> L = ['Python','Java',"C++"]
>>> del L[1:3]
>>> L
['Python']


# remove方法移除元素
>>> L = ['Python','Java','C++','C']
>>> L.remove('C')
>>> L
['Python', 'Java', 'C++']

改
# sort()方法对列表进行排序 ——不能对数字和列表的混合列表使用
>>> L = [4,5,2,1,3]
>>> L.sort()
>>> L
[1, 2, 3, 4, 5]

# sort可以通过传入参数的方法决定排序顺序
>>> L = ['abc', 'ABD', 'aBe']
>>> L.sort()
>>> L
['ABD', 'aBe', 'abc']

>>> L = ['abc', 'ABD', 'aBe']
>>> L.sort(key = str.lower)
>>> L
['abc', 'ABD', 'aBe']

>>> L = ['abc', 'ABD', 'aBe']
>>> L.sort(key = str.lower, reverse = True)
>>> L
['aBe', 'ABD', 'abc']

查
# index语句查询元素的偏移量
>>> L = ['Python','Java','C++','C']
>>> L.index('C++')
2

# count方法统计元素出现次数
>>> L = ['Python','Java','C++','C','Python']
>>> L.count('Python')
2


字典

字典是Python中最灵活的内置数据结构类型。是无序的集合;通过键来存取数值;长度可变,可异构,可嵌套;属于可变映射类型;支持散列表。

字典的基本操作

# 创建字典
>>> D = {'xiaomi':2, 'huawei':1, 'apple':3}

# 通过键来索引
>>> D['apple']
3

# len()函数求字典键值对个数
>>> len(D)
3

# 判断字典是否有该键
>>> 'xiaomi' in D
True

# 通过列表和keys方法列出所有的键
>>> list(D.keys())
['xiaomi', 'huawei', 'apple']

# 通过给旧键赋值对字典进行修改
>>> D['apple'] = ['pink', 'blue']
>>> D
{'xiaomi': 2, 'huawei': 1, 'apple': ['pink', 'blue']}

# 通过给新键赋值对字典进行增加
>>> D['oppo'] = 4
>>> D
{'xiaomi': 2, 'huawei': 1, 'apple': ['pink', 'blue'], 'oppo': 4}

# 通过del 语句删除键值对
>>> del D['apple']
>>> D
{'xiaomi': 2, 'huawei': 1, 'oppo': 4}

字典的常用方法

增
# update方法拼接两个字典
>>> D = {'xiaomi':2, 'huawei':1, 'apple':3}
>>> D2 = {'mixiao':2, 'weihua':1, 'pleap':3}
>>> D.update(D2)
>>> D
{'xiaomi': 2, 'huawei': 1, 'apple': 3, 'mixiao': 2, 'weihua': 1, 'pleap': 3}


删
# pop方法根据键删除元素,返回键存储的值
>>> D = {'xiaomi':2, 'huawei':1, 'apple':3}
>>> D.pop('apple')
3
>>> D
{'xiaomi': 2, 'huawei': 1}


查
# values方法查询字典中的值
>>> D = {'xiaomi':2, 'huawei':1, 'apple':3}
>>> list(D.values())
[2, 1, 3]

# item方法查询字典中的键值对
>>> D = {'xiaomi':2, 'huawei':1, 'apple':3}
>>> list(D.items())
[('xiaomi', 2), ('huawei', 1), ('apple', 3)]

# get方法传入键,返回键的值;如果键不存在,返回设定的值,默认为None
>>> D = {'xiaomi':2, 'huawei':1, 'apple':3}
>>> D.get('apple')
3
>>> print(D.get('OPPO'))
None
>>> D.get('OPPO',88)
88

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值