python 第九章 常用操作

系列文章目录

第一章 初识python
第二章 变量
第三章 基础语句
第四章 字符串str
第五章 列表list []
第六章 元组tuple ( )
第七章 字典dict {}
第八章 集合set {}



9.1公共操作

运算符

运算符描述支持的容器类型
+合并字符串、列表、元组
*复制字符串、列表、元组
in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典
+ 合并
str1 = "abc"
str2 = "def"
print(type(str1 + str2))
print(str1 + str2)

list1 = [1, 2, 3]
list2 = [10, 20, 30]
print(type(list1 + list2))
print(list1 + list2)

tuple1 = (1, 2, 3)
tuple2 = (10, 20, 30)
print(type(tuple1 + tuple2))
print(tuple1 + tuple2)

在这里插入图片描述
字典不支持合并运算
在这里插入图片描述

* 复制
str1 = "abc"
list1 = ["hello"]
tuple1 = ("world",)

# *:复制
print(str1 * 5)
print(list1 * 5)
print(tuple1 * 5)

#  打印10个 "-"
print('-' * 10)

在这里插入图片描述

判断数据是否存在
str1 = "abc"
list1 = ["hello"]
tuple1 = ("world",)

# *:复制
print(str1 * 5)
print(list1 * 5)
print(tuple1 * 5)

#  打印10个 "-"
print('-' * 10)

在这里插入图片描述

公共方法

函数描述
len()计算容器中元素个数
del 或 del()删除
max()返回容器中元素最大值
min()返回容器中元素最小值
range(start,end, step)生成从start到end的数字,步长为 step,供for循环使用
enumerate()函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
len()

在这里插入图片描述

del

在这里插入图片描述

list1 = [10, 20, 66, 30, 99, 50]

del(list1[0])
print(list1) # [20, 66, 30, 99, 50]

del(list1)
print(list1)
set1 = {10, 20, 66, 30, 99, 50}

del(set1)
print(set1)
dict1 = {"name": "意境", "age": 18}

del dict1["age"]
print(dict1)

del(dict1)
print(dict1)

max()
str1 = "abcdefg"
list1 = [10, 20, 66, 30, 99, 50]

print(max(str1))  # g
print(max(list1))  # 99
min()
str1 = "abcdefg"
list1 = [10, 20, 66, 30, 99, 50]

print(min(str1))  # a
print(min(list1))  # 10
range

range(start,end, step)

生成从start到end的数字,步长为 step,供for循环使用 。

类似描述:切片,需要注意的是切片end位置的数据不包含,range也不包含end结束位。start可以省略,默认从0开始。step可以省略,默认步长为1。

# 1 2 3 4 5 6 7 8 9
for i in range(1, 10, ):  # range(1, 10, 1)
    print(i, end=" ")

print()
# 1 3 5 7 9
for i in range(1, 10, 2):
    print(i, end=" ")

print()
# 0 1 2 3 4 5 6 7 8 9
for i in range(10):
    print(i, end=" ")

注意: range()生成的序列不包含end数字。

enumerate

enumerate(可遍历对象,start=0)
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中 。

返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是原迭代对象的数据。

start参数用来设置遍历数据的下标的起始值,默认为0。

list1 = ['a', 'b', 'c', 'd', 'e']

for i in enumerate(list1):
    print(i)

在这里插入图片描述

在这里插入图片描述
拆包:

list1 = ['a', 'b', 'c', 'd', 'e']

for index, value in enumerate(list1, start=1):
    print(f'下标{index},对应数据是{value}')

在这里插入图片描述

容器类型转换

tuple()

作用:将某个序列转换成元组
在这里插入图片描述

list()

作用:将某个序列转换成列表
在这里插入图片描述

set()

作用:将某个序列转换成集合
在这里插入图片描述

注意:
1.集合可以快速完成列表去重
2.集合不支持下标

9.2 推导式

推导式就是一种更有风格的python代码的一种写法。例如一个需求代码可能要5行,但是我用推导式去书写很可能1行代码就完成了。

列表推导式

作用: 用一个表达式创建一个有规律的列表或控制一个有规律列表。
列表推导式又叫列表生成式。

例:创建一个0-9的列表

  • while循环实现
    在这里插入图片描述

  • for循环实现
    在这里插入图片描述- 列表推导式去实现

list1 = [ i for i in range(10) ]
print(list1)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
带if的列表推导式

需求:创建0-9的偶数列表
方法一:range()步长实现

在这里插入图片描述
方法二:if 实现

list1 = [i for i in range(10) if i % 2 == 0]
print(list1)  # [0, 2, 4, 6, 8]
多个for循环实现列表推导式

需求: 创建列表如下:
[(1, 0),(1,1),(1, 2), (2, 0),(2, 1), (2, 2)]

代码如下:

list1 = [(i, j) for i in range(1, 3) for j in range(3)]
print(list1)  # [(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]

在这里插入图片描述

多for的列表推导式等同于for循环嵌套

字典推导式

思考: 如果有如下两个列表
list1 = [‘name’, ‘age’, ‘gender’]
list2 = [‘意境’, 20, ‘man’]

问:如何快速合并为一个字典?
答:字典推导式

字典推导式作用: 快速合并列表为字典或提取字典中目标数据

①创建一个字典: 字典key是1-5数字,value是这个数字的2次方
key:value 的形式

dict1 = {i: i ** 2 for i in range(1, 6)}
print(dict1)  # {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

在这里插入图片描述
②将两个列表合并为一个字典

list1 = ['name', 'age', 'gender']
list2 = ['意境', 20, 'man']
dict1 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict1)  # {'name': '意境', 'age': 20, 'gender': 'man'}

在这里插入图片描述
但是这样写还是有问题的,假如list1和list2长度不一样,会报错IndexError: list index out of range,下标越界的意思
在这里插入图片描述

总结:
1.如果两个列表数据个数相同,len统计任何一个列表的长度都可以
2.如果两个列表数据个数不同,len统计数据多的列表数据个数会报错,len统计数据少的列表数据个数不会报错

在这里插入图片描述
③提取字典中目标数据

counts = {'MBp': 268, 'HP': 125, 'DELL': 201, 'Lenovo': 199, 'acer': 99}
# 需求: 提取上述电脑数量大于等于209的字典数据
count1 = {key: value for key, value in counts.items() if value >= 200}
print(count1)  # {'MBp': 268, 'DELL': 201}

集合推导式

使用几率不高

需求: 创建一个集合,数据为下方列表的2次方
list1 = [1, 2, 1, 3]

list1 = [1, 2, 1, 3]
set1 = {i ** 2 for i in list1}
print(set1)  # {1, 4, 9}

注意:集合有数据去重功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章Python基本 6 一Python 简介 6 (一) Python 定义 6 (二) Python程序的执行方式 7 (三)Linux常用命令 7 (四)执行过程 8 (五)解释器类型 8 (六)调试 9 二 数据基本运算 9 (一)pycharm常用快捷键(编译器) 9 (二) 函数 函数名(参数) 10 (三)变量 存储数据 11 (四)del 语句 14 (五)核心数据类型 14 (六)数据类型转换 16 (七)运算符 17 三 语句 23 (一)行 23 (二)pass 语句 23 (三)选择语句 24 (四)循环语句 25 (五)跳转语句 30 (六)print相关函数 30 四 容器类型 30 (一)通用操作 30 (二)字符串 str(不可变序列+字符编码值) 33 (二) 列表 list (预留空间+可变序列+储存变量) 35 (四) 元组 tuple(按需分配+不可变序列+存储变量) 44 (五) 字典 dict (按键取值+可变散列+存储键值对) 46 (六) 集合 set (去重复/数学运算+存储键+可变散列) 52 (七)固定集合 frozenset 54 五 函数 function(小而精) 55 (一)pycharm相关设置 55 (二)定义 55 (三)作用 56 (四)定义函数 56 (五)调用函数 56 (六)返回值 57 (七)可变/不可变类型在传参时的区别 58 (八)函数参数 59 六 作用域LEGB 66 (一)变量名的查找规则 66 (二)局部变量 66 (三)全局变量 66 (四)global 语句 67 (五)nonlocal 语句(外部嵌套) 67 第二章 面向对象 Object Oriented 68 一 概述 68 (一)面向过程 68 (二)面向对象 68 二 类和对象 69 (一)语法 70 (二)实例成员 72 (三)类成员 75 (四)静态方法 76 (总结)类和对象 77 三 三大特征 78 (总结)三大特征 78 (一)封装(按需求分,按行为分) 78 (二)继承(抽象 -> 统一 -> 隔离) 86 (三) 多态 90 四 设计原则 95 (总结)设计原则 95 (一)开-闭原则(目标、总的指导思想,增加不改变原代码) 95 (二)类的单一职责(一个类的定义) 96 (三)依赖倒置(依赖抽象) 96 (四)组合复用原则(复用的最佳实践) 96 (五)里氏替换(扩展重写,继承后的重写,指导继承的设计) 96 (六)迪米特法则(用父类减少传递数据量,类与类交互的原则) 97 第三章 模块包+函数式编程 98 通用:快捷键 98 一 模块 Module 98 (一)定义: 包含一系列数据、函数、类的文件,通常以.py结尾。 99 (二)作用 99 (三)导入 99 (四) 模块变量 100 (五)加载过程 100 (六)分类 101 (七)搜索顺序 102 二 包package 102 (一)定义:将模块以文件夹的形式进行分组管理。 102 (二)作用:让一些相关的模块组织在一起,使逻辑结构更加清晰。 102 (三)导入 102 (四) 搜索顺序 103 三 异常处理Error 104 (一)异常 104 (二)处理 105 (三)raise 语句 106 (四)自定义异常:为了快速传递错误信息 108 四 迭代 108 (一)可迭代对象iterable 109 (二) 迭代器对象iterator 110 五 生成器generator 113 (一)生成器函数 114 (二)内置生成器 116 (三)生成器表达式 116 六 函数式编程 118 (一)函数作为参数 119 (二)内置高阶函数 122 (三) 函数作为返回值 124

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值