Python基础教程:常⽤函数整理
⼀,把字符串形式的list转换为list
使⽤ast模块中的literal_eval函数来实现,把字符串形式的list转换为Python的基础类型list
float的有效位数from ast import literal_eval
str_list ="[1838, 13735, 8285, 35386]"
mylist = literal_eval(str_list)
type(mylist )
⼆,filter
filter() 函数⽤于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第⼀个为函数,第⼆个为序列,序列的每个元素作为参数传递给函数进⾏判,然后返回 True 或 False,最后将返回True 的元素放到新列表中。
filter(function, iterable)
Python3.x 返回的结果是迭代器对象,可以使⽤list()函数把迭代器对转转换为列表对象,例如,
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:531509025
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
>>> ret =filter(lambda x: x %2==0,range(10))
>>>print(list(ret))
[0,2,4,6,8]
三,sorted
当对List、Dict进⾏排序时,Python提供了两个⽅法:
⽤List的成员函数sort进⾏排序,在本地进⾏排序,不返回副本
⽤built-in函数sorted进⾏排序(从2.4开始),返回副本,原始输⼊不变
while循环的例子在本质上,list的排序和内建函数sorted的排序是差不多的,连参数都是⼀样的,主要区别在于,list.sort()是对已经存在的列表进⾏操作,进⽽可以改变列表;⽽内建函数sorted返回的是⼀个新的list,⽽不是在原来的基础上进⾏的操作。返回值是⼀个经过排序的可迭代类型,与iterable是⼀样的。
慕课网收费视频免费共享sorted(iterable, key=None, reverse=False)
list_obj.sort(key=None, reverse=False)
参数注释:
reverse:排序规则,reverse = True 表⽰降序,reverse = False 表⽰升序,默认值是按照升序排序
key:key参数接受⼀个函数,该函数只有⼀个参数,参数是列表项,也就是说,key参数⽤于在进⾏⽐较之前指定在每个列表元素上要调⽤的函数。
key参数接收的函数形式如下,x是列表项的元素,key接受的函数必须返回值,⽤于表⽰此元素的权值,sort将按照权值的⼤⼩进⾏排序
def f(x):
return len(x)
举个例⼦,有如下列表,列表项是元组:
list=[('d',3),('a',5),('d',1),('c',2),('d',2)]
1,按照元组的第⼆个元素对列表进⾏排序
>>>sorted(list,key=lambda x:x[1])
[('d',1),('c',2),('d',2),('d',3),('a',5)]
2,对列表进⾏排序时,先按照元组的第⼀列进⾏排序,然后在第⼀列的基础按照元组的第⼆列进⾏排序
>>>sorted(list, key =lambda x:(x[0],x[1]))
[('a',5),('c',2),('d',1),('d',2),('d',3)]
四,str
str(obj) 函数将对象obj转化为适于阅读的字符串形式,也就是说,str()函数返回的对象的字符串形式:
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:531509025
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
>>>dict={'runoob':'runoob','google':'google'};
>>>str(dict)
"{'google': 'google', 'runoob': 'runoob'}"
五,print
print()函数⽤于打印数据
1,常规⽤法
常规⽤法的定义如下,
python入门教程视屏
print(*objects, sep=' ', end='\n',file=sys.stdout)
参数注释:
objects :表⽰输出的对象,当输出多个对象时,⽤ , (逗号)分隔
sep :输出结果中⽤于间隔多个对象的符号
end :输出结果的末尾⾃动添加的符号,默认值是换⾏符 \n
file :输出的结果写⼊的⽂件对象,默认是标准输出,即屏幕
使⽤⽰例,sep、end和file参数使⽤默认值:
>>> name='vic'
>>> age=22
>>>print('my name is',name,',',age,'years old')
my name is vic ,22 years old
2,格式化输出
格式化输出的定义如下:
print(format% args)
参数注释:
format:字符串 format 定义args显⽰的格式,格式字符是由%字符来定义的,其中,%d ⽤于显⽰整数,%s ⽤于显⽰字符串,%f ⽤于显⽰浮点数
%:是格式字符串和参数的分割符
args:要输出的对象构成的元组,当输出的数据是多个对象时,需要使⽤元组形式
当args中包含多个参数时,需要使⽤元组形式:
>>>print('my name is %s, %d years old'%(name,age))
my name is vic,22 years old
六,all和any
any(iterable) :参数iterable:可迭代对象;如果当iterable有任意⼀个值是⾮0,⾮空、True,那么结果就是True。如果iterable所有的值都是0、’'或False时,那么结果为False
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:531509025
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
def any(iterable):
for element in iterable:
if element:
return True
return False
all(iterable)函数,如果当iterable有任意⼀个值是0,空、False,那么结果就是False。只有当iterable所有的值都是⾮0、⾮’'或True 时,结果才是True
def any(iterable):
三个表率的内容包括for element in iterable:
if not element:
return False
return True
举个例⼦,创建⼀个列表[2,3,4],测试all()和 any()函数:
>>> nl=list(range(2,5))
>>>print(all(n>=2for n in nl))
True
>>>print(all(n>=3for n in nl))
False
>>>print(any(n>=3for n in nl))
True
七,map
map()是 Python 内置的⾼阶函数,它接收⼀个函数 func 和⼀个 list,并通过把函数 func 依次作⽤在 list 的每个元素上,得到⼀个新的list 并返回。
map(func, seq1[, seq2,…])
1,当seq只有⼀个时
当seq只有⼀个时,把函数func作⽤于seq的每个元素上,得到⼀个新的seq
map(lambda x: x*x ,[1,2,3,4,5])
#[1, 4, 9, 10, 25]
2,当seq多于⼀个时oracle认证是英文还是中文
当seq多于⼀个时,map可以并⾏地对每个seq执⾏func,也就是说,func有多个参数,⽤于接收相应序列的每个元素
'''
遇到问题没⼈解答?⼩编创建了⼀个Python学习交流QQ:531509025
寻有志同道合的⼩伙伴,互帮互助,⾥还有不错的视频学习教程和PDF电⼦书!
'''
>>> t=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,4])
>>>for i in t:
...print(i)
...
(1,2)
(4,4)
(81,7)
⼋,reduce
reduce()函数⽤于迭代计算,函数将⼀个iterable中的所有数据进⾏下列操作:⽤传给 reduce 中的函数 function(有两个参数)先对iterable中的第 1、2 个元素进⾏操作,得到的结果再与iterable中的第三个元素⽤ function 函数运算,最后得到⼀个结果。
reduce(function, iterable[, initializer])
参数注释:
function – 函数,有两个参数
iterable – 可迭代对象
initializer – 可选,初始参数
例如,initializer 是传递给function参数的第⼀个参数,第⼆个参数从iterable中获取。
>>>reduce(lambda x,y:x+y,[1,2,3,4],1)
11
>>>reduce(lambda x,y:x+y,[1,2,3,4])
10
reduce()函数计算的流程如下图所⽰:
九,zip
zip() 函数⽤于把可迭代的对象作为参数,把对象中对应的元素打包成⼀个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不⼀致,则返回列表长度与最短的对象相同,利⽤ * 号操作符,可以将元组解压为列表。
>>>a =[1,2,3]
>>> b =[4,5,6]
>>> c =[4,5,6,7,8]
>>> zipped =zip(a,b)# 打包为元组的列表
[(1,4),(2,5),(3,6)]
>>>zip(a,c)# 元素个数与最短的列表⼀致
[(1,4),(2,5),(3,6)]
>>>zip(*zipped)# 与 zip 相反,*zipped 可理解为解压,返回⼆维矩阵式
[(1,2,3),(4,5,6)]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论