内置函数2

五星函数*****
print() sum reversed
key : min max map sorted filter zip

1.和数据结构相关:

  列表和元祖:

    list,将一个可迭代对象转化为列表,如字典转化为列表(默认键字典的键转化)

    tuple,将一个迭代对象转化为元祖,如字典转化为元祖(默认键字典的键转化)

    reversed 将一个序列翻转,并返回翻转后的序列的迭代器*****

s = ['a','b','c','d']
a = reversed(s)
for i in range(4):
    print(next(a))

  slice :构造一个切片对象,用于切片 ***

s = [1,2,34,56,7,8,9,0,9]
a = slice(1,5,2)
print(s[a])

  str:将数据转化为字符串

  format,可用于格式化输出外,还可以用于计算小数,精算等**

print(format('test','<10'))
print(format('test','>10'))
print(format('test','^10'))

  bytes, unicode转化bytes类型****

a1 = '黎明'
print(a1.encode('utf-8'))
print(a1.encode('utf-8').decode('utf-8'))

  

a2 = '李明'
b2 = bytes(a2,encoding='utf-8')
print(a2)

2.repr返回一个对象的string形式(原型毕露)*****

print('黎明')
print(repr('黎明'))
print(repr("{'黎明':'sf'}"))
print(repr('人生%s年' % repr('千')))

3.sorted :对可迭代对象进行序列排序,形成一个新列表,原列表不变(可迭代对象需要时同一种数据类型)。 *****

s = ['w','e','r']
# s = [1,2,34,5,6,78]
print(sorted(s))
print(s)
d = sorted(s)
print(d)
print(s)

  

l2 = [(1,1000),(2,18),(4,250),(3,500)]
print(sorted(l2))
def num(x):
    return x[1]
print(sorted(l2,key=num))

多条件判断:all,any

  all:可迭代对象中,全部为True 才是true

  any:可迭代对象中,有一个True,为true

l1 = [1,2,3,44,(),]
print(all(l1))
print(any(l1))

4.zip,将多个iter,每一个纵向组成一个元祖,并返回iter,以最短的为标准 *****

  

l1 = [1,2,3,6,7]
tu1 = ('s','d', 'd', 'f')
dic = {'天': '天1', '地':'地1', '人': '人1'}
print(zip(l1,tu1,dic))
print(list(zip(l1,tu1,dic)))
for i in zip(l1,tu1,dic):
    print(i)

filter :过滤,迭代器*****

l = [ i for i in range(12)]
def num(x):
    return x % 2 == 1
print(list(filter(num,l)))

 map:会根据提供的函数对指定序列做映射,循环模式:

l = [1,23,4,5,6,7,8]
print([i**2 for i in l])
l = [i**2 for i in l]
print(l)
def num(x):
    return x**2
print(set(map(num,l)))
print(list(map(num,l)))
print(tuple(map(num,l)))

  

5.匿名函数:lambda表达式

  普通函数,有且只有return的函数才可以用匿名函数优化,一行代码

def num(x):
    return x**2

num = lambda x:x**2

 匿名函数一般跟内置函数配合使用

print(sorted([(1,1000),(2,18),(4,250),(3,500)],key=lambda x:x[1]))

 

6,:递归函数:默认递归深度998

def num(x):
    print(x)
    x += 1
    num(x)
num(1)

  设置递归次数:

import sys
sys.setrecursionlimit(10000)
def num(x):
    print(x)
    x += 1
    num(x)
num(1)

  

posted @ 2018-08-22 17:14  俏如來  阅读(121)  评论(0编辑  收藏  举报