内置函数(二)

数学运算(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
数学运算(7):

 列表和元祖(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')
list、tuple

相关内置函数(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)
reversed、slice

bytes:用于不同编码之间的转化。

1 b = '哈哈'
2 bs = b.encode('utf-8')
3 print(bs)
4 # b'\xe5\x93\x88\xe5\x93\x88'
5 bs = bs.decode('utf-8')
6 print(bs)
7 # 哈哈
View Code

repr:返回一个对象的string形式(原形毕露)。

1 name = 'xiaoyuer'
2 print('我是%s' % name)
3 # 我是xiaoyuer
4 print(repr('xiaoyuer'))
5 'xiaoyuer'
repr

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
enumerate

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    
format

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)
zip

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
View Code

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
map

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)]
sorted
posted @ 2018-04-26 21:52  随心朝阳  阅读(279)  评论(0编辑  收藏  举报