python内置函数二

1.repr()

# print("你好. 我\\叫周润发") # 对用户是友好的. 非正式的字符串
#
# 正式(官方)的字符串, 面向对象的时候
# print(repr("你好, 我\'叫周润发")) # 程序中内部存储的内容, 这个是给程序员看的

2.sorted

# print(lst)
#  内置函数中提供了一个通用的排序方案, sorted()
# s = sorted(lst)
# print(s)
#       0       1          0          1         1        0      0
# lst = ["聊斋", "西游记", "三国演义", "葫芦娃", "水浒传", "年轮", "亮剑"]
#
# def func(s):
#     return len(s)%2
#
# ll = sorted(lst, key=func)
#
# print(ll)
# key: 排序方案, sorted函数内部会把可迭代对象中的每一个元素拿出来交给后面的key
# 后面的key计算出一个数字. 作为当前这个元素的权重, 整个函数根据权重进行排序


lst = [
    {'name':"汪峰","age":48},
    {"name":"章子怡",'age':38},
    {"name":"alex","age":39},
    {"name":"wusir","age":32},
    {"name":"赵一宁","age":28}
    ]



ll = sorted(lst, key=lambda el: len(el['name']), reverse=True)
print(ll)

3.filter()

# lst = ["张无忌", "张铁林", "赵一宁", "石可心","马大帅"]

# def func(el):
#     if el[0] == '张':
#         return False # 不想要的
#     else:
#         return True # 想要的

# 筛选,
# f = filter(lambda el: el[0]!="张", lst) # 将lst中的每一项传递给func, 所有返回True的都会保留, 所有返回False都会被过滤掉
#
# print("__iter__" in dir(f)) # 判断是否可以进行迭代
# for e in f:
#     print(e)


# lst = [
#     {"name":"汪峰", "score":48},
#     {"name":"章子怡", "score":39},
#     {"name":"赵一宁","score":97},
#     {"name":"石可心","score":90}
# ]
#
# f = filter(lambda el: el['score'] < 60 , lst) # 去16期的人
#
# print(list(f))

4.map()

# lst = [1,4,7,2,5,8]

# 计算列表中没个数字的平方
# ll = []
# for el in lst:
#     ll.append(el**2)

# def func(el):
#     return el**2
# m = map(lambda el: el**2, lst) # 把后面的可迭代对象中的每一个元素传递给function, 结果就是function的返回值
#
# print(list(m))

# print("__iter__" in dir(m))

# 分而治之
# map(func1, map(func2, map(func3 , lst)))

# lst1 = [1, 3, 5, 7]
# lst2 = [2, 4, 6, 8, 10]
# # 水桶效应, zip()
# m = map(lambda x, y, z: x + y+ z, lst1, lst2, [5,1,2,3,6])
# print(list(m))

 

posted @ 2018-08-15 15:53  王哈哈呀  阅读(134)  评论(0编辑  收藏  举报