ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

假装有标题 打卡2

2022-02-02 19:02:55  阅读:139  来源: 互联网

标签:return 函数 reduce range 标题 假装 print 打卡 def


python的特性:

#切片
d=['a',3,'ahng',2333]
for x in d[1:3]: #截取列表索引号为1,2的元素,不包含3,类似左闭右开[1,3)
    print(x)
for x in d[-3:-1]: #切片同样支持负号倒数取元素,此时为左开右闭
    print(x)
#迭代
#字典迭代举例
f={'a':97,'b':98,'c':99}
#迭代输出key
for x in f:
    print (x)
#迭代输出value
for x in f.values():
    print (x)
#列表生成式
#[表达式 for ... in ... if ...]
l=[x*x for x in range(1,10)]#创建1到9的平方的数列
for x in l:
    print (x)    
l=[x*x for x in range(1,9) if x%2==1]#创建1到9中奇数的平方的数列
for x in l:
    print (x)
l=[x+y for x in 'abc' for y in 'def'] #利用双层循环创建一个全排列列表
for x in l:
    print (x)

​
#生成器
#例子:
l=(x*x for x in range (1,10)) #此时l是一个生成器
#>>> l
#<generator object <genexpr> at 0x000001D3F0672740>
#生成器generator保存的是算法,可以通过next(l)取得l的下一个值
#generator是可以迭代的,如下
for x in l:
   print (x)
#稍复杂的generator  
def isprimenumber(n):
    for i in range(2,n):
        if n==2:
            return 1
        if n%i==0:
            return 0
    return 1
def generator (max):
    for x in range (2,max):
        flag=isprimenumber(x)
        if flag==1:
            yield x  
#普通函数是顺序执行,遇到return语句或者最后一行函数语句就返回。
#而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
for y in generator(100):
    print (y) 

​

生成器的使用案例——杨辉三角:

def triangle():
    l=[1]
    while 1:
        yield l
        m=[l[i]+l[i+1] for i in range (0,len(l)-1)]
        l=[1]+m+[1] #列表可以拼接
r=[]
n=1
for t in triangle():
    r.append(t)
    n=n+1
    if n>=10:
        break
for x in r:
    print(x)

map函数:

#map函数接收两个参数,一个是函数,另一个是iterator如列表list等
#例子
def f(x):
    return x*x
r=map(f,range(1,10)) 
l=list(r)#r是一个惰性的iterator,需要通过list()计算并传递给一个列表
for x in l:
    print(x)

reduce函数:

#reduce函数,是把一个函数作用于一个序列,这个函数必须接收两个参数
#reduce会把函数返回的结果再次与序列的下一个元素传递给该函数,再次计算,直到最后一个元素
from functools import reduce
def f(x,y):
    return x+y
print(reduce(f,[1,2,3,4])) #通过reduce求和
#例子,把字符串数字转换数字
def fn(x,y):
    return (x*10+y)
def char2num(s):
    d={'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}
    return d[s]
string='1234567890'
print(reduce(fn,map(char2num,string)))
#map(char2num,string)把字符串转换成一个数字的iterator,fn再转换成数值

标签:return,函数,reduce,range,标题,假装,print,打卡,def
来源: https://blog.csdn.net/kxndqj/article/details/122769060

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有