前段时间用Python刷了一些题,把刷题的过程遇到的一些小知识点总结了一下,都是一些比较基础的知识点,特别适合一些刚入门的新手看lambda表达式
>>>f = lambda x,y,z:x+y+z
>>>f(1,2,3)
>>>6
而如何要用正常函数实现上述功能的话,需要先用
def
定义函数名,代码如下:
>>>def f(x,y,z):
>>> return x+y+z
>>>n = f(1,2,3)
>>>6
filter()、map()和reduce()函数的区别
包括两个参数,分别是function和list。该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表,如下例所示:
>>>a=[1,2,3,4,5,6,7]
>>>b=filter(lambda x:x>5, a)
>>print b
>>>[6,7]
如果filter参数值为None,就使用identity()函数,list参数中所有为假的元素都将被删除。如下所示:
>>>a=[0,1,2,3,4,5,6,7]
b=filter(None, a)
>>>print b
>>>[1,2,3,4,5,6,7]
>>>map(lambda x:x+3, a) #这里的a同上
>>>[3,4,5,6,7,8,9,10] #另一个例子
>>>a=[1,2,3] >>>b=[4,5,6]
>>>map(lambda x,y:x+y, a,b)
>>>[5,7,9]
在刷题的过程中,map()函数通常可以结合输入一起使用,例如在一行中输入3个整数,可用如下语句:
a,b,c = map(int, input().split())
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(10) # 从 0 开始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 11 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5 [0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3 [0, 3, 6, 9]
>>> range(0, -10, -1) # 负数 [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0) []
>>> range(1, 0) []
range 在 for 中的使用:
for i in range(n): # 正序遍历,表示i的取值从0到n-1
for i in range(n,0,-1): # 倒序遍历,表示i的取值从n到1
dict字典
names = ['Michael', 'Bob', 'Tracy']
scores = [95, 75, 85]
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael'] 95
我在刷题的时候,遇到一个问题就是需要在循环中动态往dict添加数据,但是没有找到添加的函数,其实不用插入函数,循环中动态往dict添加数据也很简单,如下所示:
dt = {} #先定义一个字典,注意是{},如果定义数组是[]
for i in range(n):
dt[key[i]] = value[i]
sort与sorted的排序问题
L.sort(cmp=None, key=None, reverse=False)
sorted参数说明
sorted(iterable, cmp=None, key=None, reverse=False)
my_list = [3, 5, 1, 4, 2]
my_list.sort()
print my_list
#输出:
[1, 2, 3, 4, 5]
而使用sorted()方法排序时会返回一个新的list:
my_list = [3, 5, 1, 4, 2]
result = sorted(my_list) #返回一个新的list
print result
#输出:
[1, 2, 3, 4, 5]
常用的一些零散的小知识
#Python求幂
10**2 #10的平方
10**4 #10的4次方
for i in range(n):
print(data[i],end=' ') #end值为空格
print("6 // 4 = " + str(6 // 4))
print("6 / 4 =" + str(6 / 4))
【result】
a = [1,1,2,2,3,4,5]
a = set(a) print(a)
【result】
原文发布时间为:2018-09-13
本文作者:
厂长
本文来自云栖社区合作伙伴
“
轮子工厂
”
,了解相关信息可以关注“
轮子工厂
”。