python 匿名函数 与 重要的内置函数

# ====================         内置函数            ===================    ================

#any 判断有一为真 才为真
#all 判断 全部为真 才为真
# print(any(["",1,0]))


#ord 输入字符,返回unicode 对应的编码位置
# print(ord("a"))
# print(ord("b"))
# print(ord("中"))

#chr 输入编码位置,返回Unicode对应的字符
# print(chr(97))
# print(chr(20013))
# print(ascii("a"))
# print(ascii('国'))

#%s repr 原形毕露
# name = "alex%r"%('sb')
# print(name)
# print(repr([1,2]))

#slice()切片
# li = [11,22,33,44]
# print(li[1::2])
# sl = slice(1,4,2)
# print(li[sl])

#reversed() 形成一个新的迭代器 反 转
# li = [11,22,33,53,44,99,"alex"]
# li.reverse()
# print(li)
# l2 = reversed(li)
# for i in l2:
# print(i)


#重要的 内置函数

# dic = {"k1":20,"k2":30,"k3":100}
# def func(x):
# return dic[x]
# l1 = max(dic,key=func,)
# print(l1)
#
# dic = {3:30,2:30,1:100}
# def func(x):
# return x
# l2 = max(dic,key=func,)
# print(l2)

# from collections import Iterator
#zip 可以防止多个可迭代对象,一i最少的可迭代对象的个数为基准,返回一个迭代器
#拉链方法
# li = [1,2,3,4,5]
# l2 = ["a","b","v","s"]
# l3 = [1,2,3]
# print(zip(li,l2,l3))
# print(isinstance(zip(li,l2,l3),Iterator))
# for i in zip(li,l2,l3):
# print(i)


#map
#[i*i for i in range(5)]
# print(i*i for i in range(5))
# print(map(abs,[1,2,3,-6,-7]))
# for i in map(abs,[1,2,3,-4,-5,-7]):
# print(i)
# def func(x):return x*x
# for i in map(func,range(5)):
# print(i)
# def func(x):return x*x
# for i in map(func,[0,1,2,3,4]):
# print(i)

#filter 过滤
#[i for i in [1,2,3,4,5] if i % 2 == 0]
# def func1(x):return x % 2 == 0
# for i in filter(func1,[1,2,3,4,5]):
# print(i)

# sorted 返回的是列表
# 形成一个新列表,并返回
#与list.sort() 改变原列表
# li = [1,4,3,5,6]
# print(sorted(li))
# print(li)
# l = ["sfdfrt",'dfdfrg','ggt','fdfd']
# def func(x):
# return len(x)
# for i in sorted(l,key=func):
# print(i)
# print(sorted(l,key=len))

#都是带key的:zip max min map filter 返回的是迭代器 sorted 返回的是列表
#bytes()
#bytes
# s = "中国".encode("utf-8")#编码
# print(s)
# s.decode("utf-8")#编码
# #s gbk 的bytes -----> utf-8的 bytes
# s = b"\xd6\xd0\xb9\xfa"
# s1 = s.decode("gbk").encode("utf-8")
# print(s1)

#方法二
# s = '中国'.encode('utf-8')# 编码
# s1 = '中国'
# s2 = bytes(s1,encoding='utf-8').decode('utf-8')
# print(s1)
# import sys
# sys.setrecursionlimit(100000)
# count = 0
# def func():
# global count
# count += 1
# print(count)
# func()
# func()

# ========================================= 匿名函数 =============
# def func1(x):
# return x
# func = lambda x:x
# print(func1(3))
# print(func(3))
# def func(x,y):
# return x+y
# func1 = lambda x,y:x+y
# print(func1(1,3))
# def func2(x):return x*x
# for i in map(lambda x:x*x,[0,1,2,3,4]):
# print(i)

# l1 = ["234",'23','rtfggt','trtrtrt']
# def func1(x):return x % 2 == 0
# for i in filter(func1,[1,2,3,4,5]):
# print(i)
# for i in filter(lambda x:len(x) >= 3,l1):
# print(i)

#面试题
# d = lambda x:x*2
# t = lambda x:x*3
# x = 2
# x = d(x)
# x = t(x)
# x = d(x)
# print(x)

# 现在有两个元组(('a'),('b')),(("c'),('d')), 请使用python 中的 匿名函数生成列标
#[{'a':'c'},{"b":'d'}]
# tu1 = (('a'),('b'))
# tu2 = (('c'),('d'))
# func = lambda x,y:[{x[0]:y[0]},{x[1]:y[1]}]
# print(func(tu1,tu2))
#
# tu2 = (2)
# print(tu2)
# print(tu1)
posted @ 2018-02-25 12:56  xuerh  阅读(195)  评论(0编辑  收藏  举报