Python3 语法小技巧

Python现在应用领域越来越广泛,在写的同时,养成良好习惯记录是非常有意义的,大家都知道Python入门容易精通很难,今天分享一下有意思的代码。

0x01

想必我们经常有用到过数组,但这样的数据结构一定涉及到排序,取最大值,取最小值,下面就是一个小栗子

    import heapq
    nums = [10, 22, 44, 55, 66, 77, 888, 123, 4456]
    max_num = heapq.nlargest(5, nums)
    print("最大值: ", max_num)
    min_num = heapq.nsmallest(5, nums)
    print("最小值: ", min_num)

    # 最大值:  [4456, 888, 123, 77, 66]
    # 最小值:  [10, 22, 44, 55, 66]

 “heapq”这是一个很好用的内建库,尤其是在我们取一些列表的头部数据,比如最大几个,最小几个经常用到,很是实用。

0x02

排序和查询,长的数据结构里面(列表,字典)都会有查询,过滤的需求,有时候,我们需要从很长的一个列表里面,找出某一个或者某一类元素,怎么办?不用慌,Python为我们准备一系列的高阶函数。 filter -- map -- reduce 这里我们拿filter做演示

    list_temp = ['fjxc', 'lxoh', 'enhf', 'tkkj', 'ofpp', 'tfyq', 'sqlr', 'tqeo', 'exyu', 'cips', 'sjcc', 'lrxj', 'pqhp', 'egiz',
     'jjur', 'pwhs', 'efrg', 'qjtf', 'mvnu', 'uhgn']
    
    filter_gen = (filter(lambda x:x.startswith('jj'), list_temp))
    print(list(filter_gen))

    # 输出: ['jjur'] 

嘚啵:lambda是一个非长简洁的函数表达方式,短小精悍,加上配合filter一起使用,漂亮!上述示例我们通过字符串的方法“startswith”内置函数非常方便的过滤出列表里面我们需要的数据。PS(filter是生成的一个迭代器哦)

    import re
    regx_filter = filter(lambda x:re.findall(u'(jj)', x), list_temp)
    print(list(regx_filter))

    # 输出: ['jjur'] 
    # 如果列表里面是一个字典
    temp_dict_list = [{'abc':200, 'edf': 300}, {'cff': 400, 'efg': 500}]
    # [{'abc': 200, 'edf': 300}, {'cff': 400, 'efg': 500}]
    regx_filter1 = filter(lambda x: 'cff' in x.keys(), temp_dict_list)
    print(list(regx_filter1))
    # 输出: [{'cff': 400, 'efg': 500}]

goodlucky!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值