栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

本笔记是基于《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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/339568.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号