数学运算(7):
- abs:函数返回数字的绝对值。
- divmod:计算除数与被除数的结果,返回一个包含商和余数的元组(a // b, a % b)。
- round:保留浮点数的小数位数,默认保留整数。
- pow:求x**y次幂。(三个参数为x**y的结果对z取余)
1 print(abs(-5)) # 5 2 3 print(divmod(7,2)) # (3, 1) 4 5 print(round(7/3,2)) # 2.33 6 print(round(7/3)) # 2 7 print(round(3.32567,3)) # 3.326 8 9 print(pow(2,3)) # 两个参数为2**3次幂 10 print(pow(2,3,3)) # 三个参数为2**3次幂,对3取余。
- sum:对可迭代对象进行求和计算(可设置初始值)。
- min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值)。
- max:返回可迭代对象的最大值(可加key,key为函数名,通过函数的规则,返回最大值)。
1 print(sum([1,2,3])) 2 #6 3 print(sum((1,2,3),100)) 4 #106 5 print(sum([1,2,3],100)) 6 #106 7 print(min([1,2,-5,],key=abs)) 8 #1 9 dic = {'a':3,'b':2,'c':1} 10 print(min(dic,key=lambda x:dic[x])) 11 #c 12 print(max([1,2,3],key=abs)) 13 #3 14 print(max([1,2,-6],key=abs)) 15 #-6 16 dic = {'a':3,'b':2,'c':1} 17 print(max(dic,key=lambda x:dic[x])) 18 #a
列表和元祖(2)
- list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。
- tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。
1 l = list((4,5,6)) 2 print(l) 3 # [4, 5, 6] 4 l = list({4,5,6}) 5 print(l) 6 # [4, 5, 6] 7 l = list({'a1':456,'a2':789}) 8 print(l) 9 # ['a2', 'a1'] 10 t = tuple((4,5,6)) 11 print(t) 12 # (4, 5, 6) 13 t = tuple({4,5,6}) 14 print(t) 15 # (4, 5, 6) 16 t = tuple({'a1':456,'a2':789}) 17 print(t) 18 # ('a2', 'a1')
相关内置函数(2)
- reversed:将一个序列翻转,并返回此翻转序列的迭代器。(重要)
- slice:构造一个切片对象,用于列表的切片。
1 r = reversed(['a',2,3,'c',4,2]) 2 print(r) 3 #<list_reverseiterator object at 0x00000000010AB860> 4 for i in r: 5 print(i) 6 # 2 7 # 4 8 # c 9 # 3 10 # 2 11 # a 12 s = slice(7,8,9) 13 print(s) 14 # slice(7, 8, 9)
bytes:用于不同编码之间的转化。
1 b = '哈哈' 2 bs = b.encode('utf-8') 3 print(bs) 4 # b'xe5x93x88xe5x93x88' 5 bs = bs.decode('utf-8') 6 print(bs) 7 # 哈哈
repr:返回一个对象的string形式(原形毕露)。
1 name = 'xiaoyuer' 2 print('我是%s' % name) 3 # 我是xiaoyuer 4 print(repr('xiaoyuer')) 5 'xiaoyuer'
enumerate:枚举,返回一个枚举对象。
1 l = [1,2,3,4,5,6,7,8,9] 2 print(len(l)) 3 # 9 4 for i in enumerate(l): 5 print(i) 6 # (0, 1) 7 # (1, 2) 8 # (2, 3) 9 # (3, 4) 10 # (4, 5) 11 # (5, 6) 12 # (6, 7) 13 # (7, 8) 14 # (8, 9) 15 for k,i in enumerate(l): 16 # print(k,i) 17 print(k+1,i) 18 # 1 1 19 # 2 2 20 # 3 3 21 # 4 4 22 # 5 5 23 # 6 6 24 # 7 7 25 # 8 8 26 # 9 9
format:与具体数据相关,用于计算各种小数,精算等。
http://www.cnblogs.com/Eva-J/articles/7266245.html
1 print(format('test', '<20')) 2 print(format('test', '>20')) 3 print(format('test', '^20')) 4 # test 5 # test 6 # test
zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
1 l1 = [1,2,3] 2 l2 = [4,5,6] 3 print(zip(l1,l2)) 4 # <zip object at 0x0000000000BB7B48> 5 print(list(zip(l1,l2))) 6 # [(1, 4), (2, 5), (3, 6)] 7 for i in zip(l1,l2): 8 print(i) 9 # (1, 4) 10 # (2, 5) 11 # (3, 6)
filter
filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
1 def func(x):return x%2 == 0 2 ret = filter(func,[1,2,3,4,5,6,7]) 3 print(ret) 4 for i in ret: 5 print(i) 6 # <filter object at 0x00000000010D43C8> 7 # 2 8 # 4 9 # 6
map
python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
我们要将f(x)=x^2作用于这个list上,那么我们可以使用map函数处理。
1 [i**2 for i in range(10)] 2 def func(num): 3 return num ** 2 4 for i in map(func,range(10)):print(i) 5 # 0 6 # 1 7 # 4 8 # 9 9 # 16 10 # 25 11 # 36 12 # 49 13 # 64 14 # 81
sorted:对所有可迭代的对象进行排序操作。
1 L = [('a', 1), ('c', 3), ('d', 4),('b', 2), ] 2 sorted(L, key=lambda x:x[1]) # 利用key 3 [('a', 1), ('b', 2), ('c', 3), ('d', 4)] 4 5 6 students = [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)] 7 sorted(students, key=lambda s: s[2]) # 按年龄排序 8 [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)] 9 10 sorted(students, key=lambda s: s[2], reverse=True) # 按降序 11 [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]