前言
公共操作符和推导式是 Python 编程中的两个精华部分,它们能够大幅简化代码并提高开发效率。
那么今天我带大家深入探索 Python 中的公共操作符和推导式,带您一窥其背后的神奇力量。我们将学习如何使用公共操作符来进行常见的数据操作,例如比较、逻辑运算和成员关系判断。这些操作符能够快速且简洁地处理数据,使我们能够更加高效地编写代码。
除了公共操作符,推导式也是 Python 编程中的一项强大技巧。推导式允许我们以精简的语法生成新的数据结构,如列表、字典和集合。通过推导式,我们能够更加简洁地创建和操作数据,减少冗余代码,使程序更加清晰易读。
让我们一起揭开 Python 公共操作符和推导式的神秘面纱,探索它们的魔力,并将其应用于您的下一个编程项目吧!启程吧,进入这个令人激动的 Python 编程世界吧!
公共操作
1.运算符
运算符 | 描述 | 支持的容器类型 |
+ | 合并 | 字符串、列表、元组 |
* | 复制 | 字符串、列表、元组 |
in | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 元素是否不存在 | 字符串、列表、元组、字典 |
1)+ 合并操作
合并操作能够将两个相同的容器类型合并成一个容器。
str1 = 'zhangsan' str2 = 'lisi' list1 = [1,2,3] list2 = [4,5,6] t1 = (1,2,3) t2 = (4,5,6) str3 = str1 + str2 list3 = list1 + list2 t3 = t1 + t2 print(str3) print(list3) print(t3)
2)* 复制操作
复制操作能够将一个容器里面的数据复制 n 份。
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) str2 = str1 * 3 list2 = list1 * 3 t2 = t1 * 3 print(str2) print(list2) print(t2)
in / not in 判断数据在 / 不在容器中
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) print('h' in str1) print('h' not in str1) print(1 in list1) print(1 not in list1) print(7 in t1) print(7 not in t1)
公共方法
函数 | 描述 |
len() | 计算容器中元素的个数 |
del 或 del() | 删除 |
max() | 返回容器中元素最大值 |
min() | 返回容器中元素最小值 |
range(start,end,step) | 生成从start到end(不包括end),步长为step的数字,供for循环使用 |
enumerate() | 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for 循环当中。 |
len()
len方法返回序列中元素的个数。
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) print(len(str1)) print(len(list1)) print(len(t1))
del / del()
del 或 del() 用来删除序列或者序列中的元素。
str1 = 'hello' del str1 print(str1)
list1 = [1,2,3] del(list1[0]) print(list1)
注意 python 字符串和元组是不可变类型,要想删除只能删除全部,不能单独删除其中的某个数据。
max()
max返回容器中最大的元素
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) print(max(str1)) print(max(list1)) print(max(t1))
min()
min方法容器中最小的元素
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) print(min(str1)) print(min(list1)) print(min(t1))
range()
range方法生成从start开始到end(不包括end)的步长为step的数字,供fro循环使用。
for i in range(0,10,1): print(i,end = '\t')
for i in range(0,10,2): print(i,end = '\t')
当省略start时,默认从0开始,省略步长,默认步长为1。
for i in range(10): print(i,end = '\t')
enumerate()
enumerate(可遍历对象,start = 0)
函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在for 循环当中。
list1 = ['a','b','c','d','e'] for i in enumerate(list1): print(i)
list1 = ['a','b','c','d','e'] for index,i in enumerate(list1,start = 1): print(f'下标是:{index},对应字符是:{i}')
容器类型转换
1)list() 将某个序列转化为列表
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) set1 = {80,90,100} print(list(str1)) print(list(t1)) print(list(set1))
tuple() 将某个序列转换为元组
str1 = 'hello' list1 = [1,2,3] t1 = (4,5,6) set1 = {80,90,100} print(tuple(str1)) print(tuple(list1)) print(tuple(set1))
set() 将某个序列转换为集合
str1 = 'hello' list1 = [1,2,3,1] t1 = (4,5,6,6) set1 = {80,90,100} print(set(str1)) print(set(list1)) print(set(t1))
因为集合具有去重功能,所以在转换为集合的时候,会对里面的数据进行去重。
推导式
在Python中,推导式(comprehension)是一种从一个或多个迭代器快速创建可迭代数据对象的方式,如列表、字典、集合等。
推导式极大地简化了代码,有助于读写简洁而高效的Python代码,并且在性能上优于传统的for循环。
本篇博客中,我将为大家说明列表推导式、字典推导式和集合推导式。
列表推导式
我们生成一个 0-10 的列表。
我们先看看如何使用原始循环方式来生成。
# 先创建一个空列表 list1 = [] for i in range(11): list1.append(i) print(list1)
使用递推公式生成。
list1 = [i for i in range(11)] print(list1)
这样一看,很明显,对推公式的代码简洁的很多。
不仅如此,递推公式还可以使用 if 条件来进行筛选。
if 条件筛选
生成0 - 10之间偶数组成的列表。
list1 = [i for i in range(11) if i % 2 == 0] print(list1)
递推公式还可以使用多个 for 循环。
list1 = [(i,j) for i in range(1,3) for j in range(4)] print(list1)
字典递推式
生成一个简单的字典,key为1-5之间的数字,value为对应的数字的平方。
dict1 = {i:i**2 for i in range(1,6)} print(dict1)
快速合并两个列表
list1 = ['name','age','gender'] list2 = ['zhangsan',18,'man'] dict1 = {list1[i]:list2[i] for i in range(len(list1))} print(dict1)
当两个列表的长度不相同时,应该以长度较短的列表的长度作为range的参数,否则会导致另一个列表下标越界。
集合推导式
list1 = {2,2,3,4,5} set1 = {i**2 for i in list1} print(set1)
时刻记住集合具有去重的特性。