1.内置函数(二)

#与数据结构相关

列表和元组:

list:将一个可迭代对象转化成列表(如果是字典,默认将key作为列表的元素)。

tuple:将一个可迭代对象转化成元祖(如果是字典,默认将key作为元祖的元素)。

l = list((1,2,3))
print(l)
tu = tuple({'k1':1,'k2':2})
print(tu)

#相关内置函数

reversed:将一个序列反转,并返回此翻转序列的迭代器。

L1 = [1,2,3,4]
s1 = 'sdadasdasw'
dic = {'name':'alex','age':1000,'hobby':'oldwomen'}
print(reversed(L1))
for i in reversed(L1):
    print(i)
for i1 in reversed(s1):
    print(i1)
for i2 in reversed(dic):
    print(i2)

slice:构造一个切片对象,用于列表的切片。

l1 = [i for i in range(10)]
l2 = l1[0:6:2]
print(l2)
l3 = [i for i in range(10,20)]
sli_obj = slice(0,5,2)
print(l3[sli_obj])

#字符串相关

str:将数据转化成字符串。

format:与具体数据相关,用于计算各种小数,精算等

print(format('text','<20'))
print(format('text','>20'))
print(format('text''^20'))

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

s = '你好'
bs = bytes(s,encoding='utf-8')
print(bs)
b = '你好'.encode('gbk')
b1 = b.decode('gbk')
print(b1.encode('utf-8'))

bytearry:返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256。

ret = bytearray('alex',encoding='utf-8')
print(id(ret))
print(ret)
print(ret[0])
ret[0] = 65
print(ret)
print(id(ret))

memoryview

ret = memoryview(bytes('你好',encoding='utf-8'))
print(len(ret))
print(ret)
print(bytes(ret[:3]).decode('utf-8'))
print(bytes(ret[3:]).decode('utf-8'))

ord:输入字符找该字符编码的位置

chr:输入位置数字找出其对应的字符

ascii:是ascii码中的返回该值,不是就返回/u...

print(ord('a'))
print(ord(''))
print(chr(97))
print(chr(20013))
print(ascii('a'))
print(ascii(''))

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

print('alex')
print(repr('alex'))

#数据集合:

dict:创建一个字典。

set:创建一个集合。

frozenset:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。

#相关内置函数

len:返回一个对象中元素的个数。

sorted:对所有可迭代的对象进行排序操作。*****

l1 = [2,3,5,3,1,9,8,6]
l1.sort()
print(l1)
print(sorted(l1))
l2 = [(1,1000),(2,18),(4,250),(3,500)]
def func(x):
    return x[1]
print(sorted(l2,key=func))

enumerate:枚举,返回一个枚举对象。

print(enumerate([1,2,3]))
for i in enumerate([1,2,3]):
    print(i)
for i in enumerate([1,2,3],100):
    print(i)

all:可迭代对象中,全都是True才是True

l1 = [1,'',[1,3],(2,4)]
print(all(l1))

any:可迭代对象中,有一个True 就是True

print(any([1, 0, '', ()]))

zip:函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。

l1 = [1,2,3,5,6,7]
tu1 = ('alex','太白', 'wusir', '女神')
dic = {'name': '日天', 'age':28, 'hobby': 'tea', 'weight':100}
print(zip(l1,tu1,dic))
for i in zip(l1,tu1,dic):
    print(i)
zip

filter:过滤·。

l1 = [i for i in range(10)]
def func1(x):
    return x%2==0
print(list(filter(func1,l1)))

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

l1 = [1,2,3,4]
def func(x):
    return x**2
print(list(map(func,l1)))

2.匿名函数

匿名函数:为了解决那些功能很简单的需求而设计的一句话函数。lambda表达式

a = lambda x:x**2
print(a(6))

匿名函数不单独使用,多与内置函数结合

m = [1,5,7,4,8]
print(list(map(lambda x:x*2,m)))

 3.递归函数

递归函数:在一个函数里在调用这个函数本身

递归的最大深度:998

def foo(n):
    print(n)
    n +=1
    foo(n)
foo(1)
import sys
print(sys.setrecursionlimit(100000))
def age(n):
    if n == 1:
        return 40
    else:
        return age(n-1)+2
print(age(4))

 

posted on 2018-08-22 16:55  海贼王&路飞  阅读(133)  评论(0编辑  收藏  举报