美文网首页python
Python高效编程的技巧

Python高效编程的技巧

作者: 有用教育 | 来源:发表于2019-06-28 12:53 被阅读2次

    工作中经常要处理各种各样的数据,遇到项目赶进度的时候自己写函数容易浪费时间。

    Python 中有很多内置函数帮你提高工作效率!

    一:根据条件在序列中筛选数据

    1.假设有一个数字列表 data, 过滤列表中的负数

    使用列表推导式:

    result = [iforiindataifi >=0]

    于 80 分的同学

    d = {x:randint(50,100)forxinrange(1,21)}

    {k: vfork, vind.items()ifv >80}

    二:对字典的键值对进行翻转

    使用 zip() 函数

    zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

    >>> s1 = {x: randint(1,4)forxinsample('abfcdrg', randint(1,5))}

    >>> s1

    {'b':1,'f':4,'g':3,'r':1}

    >>> d = {k:vfork, vinzip(s1.values(), s1.keys())}

    >>> d

    {1:'r',4:'f',3:'g'}

    三. 统计序列中元素出现的频度

    1.某随机序列中,找到出现次数最高的3个元素,它们出现的次数是多少?

    构造随机序列如下:

    data = [randint(0,20)for_inrange(20)]

    方法1: 可以使用字典来统计,以列表中的数据为键,以出现的次数为值

    fromrandomimportrandint

    defdemo():

    data = [randint(0,20)for_inrange(30)]

    # 列表中出现数字出现的次数

    d = dict.fromkeys(data,0)

    forvinli:

    d[v] +=1

    returnd

    方法2:直接使用 collections 模块下面的 Counter 对象

    >>> data = [randint(0,20)for_inrange(30)]

    >>> data

    [7,8,5,16,10,16,8,17,11,18,11,17,15,7,2,19,5,16,17,17,12,19,9,10,0,20,11,2,11,10]

    >>> c2 = Counter(data)

    >>> c2

    Counter({17:4,11:4,16:3,10:3,7:2,8:2,5:2,2:2,19:2,18:1,15:1,12:1,9:1,0:1,20:1})

    >>> c2[14]

    4

    >>> c2.most_common(3)# 统计频度出现最高的3个数

    [(17,4), (11,4), (16,3)]

    2. 对某英文文章单词进行统计,找到出现次数最高的单词以及出现的次数

    通过上面的练习,我们知道可以用 Counter 来解决

    importre

    fromcollectionsimportCounter

    # 统计某个文章中英文单词的词频

    withopen('test.txt','r', encoding='utf-8')asf:

    d = f.read()

    total = re.split('W+', d)# 所有的单词列表

    result = Counter(total)

    print(result.most_common(10))

    相关文章

      网友评论

        本文标题:Python高效编程的技巧

        本文链接:https://www.haomeiwen.com/subject/jfuscctx.html