PS:本文旨在总结本人在Python学习过程中易混淆的语法知识。文章写得很琐碎,请见谅。
1.zip()函数
#Zip函数遍历两个列表
result=[]
num1,num2=[1,2,3],[4,5,6]
for f1,f2 in zip(num1,num2):
print(f1,f2)
results.append(f1+f2)
print(results)
>>1 4
>>2 5
>>3 6
>>[5, 7, 9]
#遍历多个列表
result=[]
num1,num2,num3=[1,2,3],[4,5,6],[7,8,9]
for f1,f2,f3 in zip(num1,num2,num3):
print(f1,f2,f3)
results.append(f1+f2+f3)
print(results)
需进行多次结构相同而值不同列表的遍历时,可用zip()函数。
而与zip()函数对应的是enumerate()函数,它也是遍历迭代,只不过它是输出索引和对应的元素。
for index, value in enumerate([7, 4, 2, 5]):
print('索引是{}, 对应的元素是{}'.format(index, value))
>>索引是0, 对应的元素是7
>>索引是1, 对应的元素是4
>>索引是2, 对应的元素是2
>>索引是3, 对应的元素是5
2.排序方法sort()与sorted()
sort是应用在list上的方法,sorted可以对所有可迭代的对象进行排序操作。
list的sort方法返回的是对已存在的列表操作后的结果,而内建函数sorted方法返回的是一个新的list,而不是在原来的基础上进行的操作。
import copy
l=[1,2,3,6,3,5,3]
ll=copy.deepcopy(l)
l.sort()
print(l)
print(sorted(ll))
>>[1, 2, 3, 3, 3, 5, 6]
>>[1, 2, 3, 3, 3, 5, 6]
sorted(iterable,cmp=None,key=None,reverse=False)
sort(cmp=None,key=None,reverse=False)
(PS:key按照什么排序;reverse是否倒序,默认False是升序)
lst3=[('a',1),('b',0),('f',8),('d',3)]
sorted(lst3,key=lambda x:x[1])
>>[('b', 0), ('a', 1), ('d', 3), ('f', 8)]
3.lambda函数
表达式:lambda argument_list : expersion
优点:简单方便,一行表达
缺点:不能写出逻辑复杂的方法
#用def定义一个函数
def f(x):
results= x**2
return results
print(f(4))
>>16
#lambda 的表达形式
g=lambda x : x**2
print(g(4))
>>16
4.map遍历
##map结合lambda函数,会遍历给定的迭代对象
nums1=[11,22,33]
nums2=[1,2,3]
nums3=[3,3,3]
results=map(lambda a,b,c:a+b+c,nums1,nums2,nums3)
results=list(results)
print(results)
>>[15, 27, 39]
map()后续应该会出专门的归纳总结。
5.fliter()
##fliter()对于序列中的元素进行筛选,最终获取符合条件的序列
li=[11,22,33]
new_list=filter(lambda a :a>22,li)
new_list=list(new_list)
print(new_list)
6.class类
在去年接触Python时就注意到这个概念,只不过一直没有去探究它,现在终于有时间来学一学了。类实际上是对相似函数的一个封装,比如要去了解一个人的学习成绩,需要知道他的语文、数学、英语等各科成绩。
class Grades:
#注意,这里的self是必须要带的,有@classmethod指明的除外
def get_math(self,math):
math_text=f'My score in math is {math}'
return math_text
def get_English(self,English):
English_text=f'My score in English is {English}'
return English_text
#创建一个实例化的类
grades=Grades()
#调用实例里有的方法
math=grades.get_math(98)
English=grades.get_English(94)
print(f'{math},{English}')