分享

Python基础入门的难点重点详细教程,强烈建议收藏

 静幻堂 2018-09-14
娇兮心有之 2018-09-13 20:31:04

lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义。它只是一个表达式,函数体比def简单很多。

3个数求和的例子:

Python基础入门的难点重点详细教程,强烈建议收藏

而如何要用正常函数实现上述功能的话,需要先用def定义函数名,代码如下:

Python基础入门的难点重点详细教程,强烈建议收藏

有需要Python学习资料的大哥大姐吗?小编整理一套Python资料和PDF,感兴趣者可以关注小编后私信学习资料(是关注后私信哦)反正闲着也是闲着呢,不如学点东西啦

Python基础入门的难点重点详细教程,强烈建议收藏

filter()函数

该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表,如下例所示:

Python基础入门的难点重点详细教程,强烈建议收藏

如果filter参数值为None,就使用identity()函数,list参数中所有为假的元素都将被删除。如下所示:

Python基础入门的难点重点详细教程,强烈建议收藏

map()函数

map()的两个参数一个是函数名,另一个是列表或元组。

Python基础入门的难点重点详细教程,强烈建议收藏

在刷题的过程中,map()函数通常可以结合输入一起使用,例如在一行中输入3个整数,可用如下语句:

a,b,c = map(int, input().split())

reduce()函数

reduce()函数接收的参数和 map()类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。

例如,编写一个f函数,接收x和y,返回x和y的和:

def f(x, y):
return x + y

调用 reduce(f, [1, 3, 5, 7, 9])时,reduce函数将做如下计算:

  • 先计算头两个元素:f(1, 3),结果为4;
  • 再把结果和第3个元素计算:f(4, 5),结果为9;
  • 再把结果和第4个元素计算:f(9, 7),结果为16;
  • 再把结果和第5个元素计算:f(16, 9),结果为25;
  • 由于没有更多的元素了,计算结束,返回结果25。

range() 函数用法

range() 函数可创建一个整数列表,一般用在 for 循环中。语法如下:range(start, stop, step)

实例:

Python基础入门的难点重点详细教程,强烈建议收藏

range 在 for 中的使用:

Python基础入门的难点重点详细教程,强烈建议收藏

dict字典

dict字典使用键-值(key-value)存储,具有极快的查找速度。在Java中也称为map。

举个例子,假设要根据同学的名字查找对应的成绩,如果用list实现,需要两个list:

Python基础入门的难点重点详细教程,强烈建议收藏

给定一个名字,要查找对应的成绩,就先要在names中找到对应的位置,再从scores取出对应的成绩,list越长,耗时越长。

如果用dict实现,只需要一个"名字"-"成绩"的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:

Python基础入门的难点重点详细教程,强烈建议收藏

遇到一个问题就是需要在循环中动态往dict添加数据,但是没有找到添加的函数,其实不用插入函数,循环中动态往dict添加数据也很简单,如下所示:


Python基础入门的难点重点详细教程,强烈建议收藏

ort与sorted的排序问题

sort参数说明

L.sort(cmp=None, key=None, reverse=False)

sorted参数说明

sorted(iterable, cmp=None, key=None, reverse=False)
  • iterable:是可迭代类型,通常为一个集合;
  • cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
  • key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
  • reverse:排序规则. reverse = True 表示降序 或者 reverse = False 表示升序,默认值为False。

使用sort()方法对list排序会修改list本身,不会返回新list,使用方法如下:

·

Python基础入门的难点重点详细教程,强烈建议收藏

而使用sorted()方法排序时会返回一个新的list:

Python基础入门的难点重点详细教程,强烈建议收藏

常用的一些零散的小知识

求实数的多少次幂

正常在java和C语言中,求一个数的幂需要调用一个求幂的函数,但是Python中直接一个运算符就可以搞定了:

Python基础入门的难点重点详细教程,强烈建议收藏

print('xx',end='')中end问题

end是print()函数的一个参数。end 是输出语句结束以后附加的字符串,它的默认值是换行(' ')。如果输出的时候不需要换行需要显示的给end赋值。

例如输出一个数组,每个数之间以空格隔开,可以用如下语句:

for i in range(n):
print(data[i],end=' ') #end值为空格

如果只是单纯的想要输出不换行,可以令end='',end值为空字符串

// 与 / 的区别

" / " 表示浮点数除法,返回浮点结果;

" // " 表示整数除法,返回不大于结果的一个最大的整数

【code】

print("6 // 4 = " + str(6 // 4)) 
print("6 / 4 =" + str(6 / 4))

【result】

6 // 4 = 1 
6 / 4 =1.5

记得用set去除重复元素

如果一个数组中有很多重复元素,根据需求需要去除重复元素的话,可以使用set集合,类似于Java的HashSet。

语法很简单,只需一行代码就可以去重,如下所示:

【code】

a = [1,1,2,2,3,4,5] 
a = set(a) print(a)

【result】

{1, 2, 3, 4, 5}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多