python3 编程使用技巧

时间:2023-03-09 01:33:37
python3 编程使用技巧
  • from random import randint
  • data = {"Student{}".format(i):randint(60,100) for i in range(1,21)}

  1. 如何在list中筛选数据
    [x for x in arr if x >=60]
  2. 如何在set中筛选数据
    [x for x in s if x >=60]
  3. 如何在dict中筛选数据
    {k:v for k,v in data.items() if v >= 60}
    filter(lambda x:x[1] >= 90,data.items())
  4. 给typle中的元素命名
     >>> s = ('Jim', 16, 'male', 'myheed@gmail.com')
    >>> from enum import IntEnum
    >>> class StudentEnum(IntEnum):
    ... NAME = 0
    ... AGE = 1
    ... SEX = 2
    ... EMAIL = 3
    ...
    >>> StudentEnum.NAME
    <StudentEnum.NAME: 0>
    >>> s[StudentEnum.NAME]
    'Jim'
    >>> s[StudentEnum.AGE]
    16

    nameTuple

     >>> from collections import namedtuple
    >>> namedtuple('Student', ['name', 'age', 'sex', 'email'])
    <class '__main__.Student'>
    >>> SS = namedtuple('Student', ['name', 'age', 'sex', 'email'])
    >>> SS
    <class '__main__.Student'>
    >>> s1 = SS('Jim',16, 'male', email='sunzhuo@bupt.edu.cn')
    >>> s1
    Student(name='Jim', age=16, sex='male', email='sunzhuo@bupt.edu.cn')
    >>> s1.name
    'Jim'
  5. dict中元素进行排序
     >>> from random import randint
    >>> d = {k: randint(60,100) for k in 'abcdefgh'}
    >>> d
    {'a': 70, 'b': 85, 'c': 81, 'd': 89, 'e': 82, 'f': 69, 'g': 64, 'h': 84}
    >>> [(v,k)for k,v in d.items()]
    [(70, 'a'), (85, 'b'), (81, 'c'), (89, 'd'), (82, 'e'), (69, 'f'), (64, 'g'), (84, 'h')]
    >>> l = [(v,k)for k,v in d.items()]
    >>> sorted(l)
    [(64, 'g'), (69, 'f'), (70, 'a'), (81, 'c'), (82, 'e'), (84, 'h'), (85, 'b'), (89, 'd')]
    >>> sorted(l, reverse = True)
    [(89, 'd'), (85, 'b'), (84, 'h'), (82, 'e'), (81, 'c'), (70, 'a'), (69, 'f'), (64, 'g')]
    >>> dict(sorted(l, reverse = True))
    {89: 'd', 85: 'b', 84: 'h', 82: 'e', 81: 'c', 70: 'a', 69: 'f', 64: 'g'}
    >>> sorted(d.items(), key=lambda item: item[1], reverse=True)
    [('d', 89), ('b', 85), ('h', 84), ('e', 82), ('c', 81), ('a', 70), ('f', 69), ('g', 64)]
     >>> res = sorted(d.items(), key=lambda item: item[1], reverse=True)
    >>> res
    [('d', 89), ('b', 85), ('h', 84), ('e', 82), ('c', 81), ('a', 70), ('f', 69), ('g', 64)]
    >>> enumerate(res,1)
    <enumerate object at 0x1079de558>
    >>> list(enumerate(res,1))
    [(1, ('d', 89)), (2, ('b', 85)), (3, ('h', 84)), (4, ('e', 82)), (5, ('c', 81)), (6, ('a', 70)), (7, ('f', 69)), (8, ('g', 64))]
    >>> for i, (k,v) in enumerate(res,1):
    ... print(i,k,v)
    ...
    1 d 89
    2 b 85
    3 h 84
    4 e 82
    5 c 81
    6 a 70
    7 f 69
    8 g 64
    >>> d
    {'a': 70, 'b': 85, 'c': 81, 'd': 89, 'e': 82, 'f': 69, 'g': 64, 'h': 84}
    >>> for i, (k,v) in enumerate(res,1):
    ... d[k] = (i,v)
    ...
    >>> d
    {'a': (6, 70), 'b': (2, 85), 'c': (5, 81), 'd': (1, 89), 'e': (4, 82), 'f': (7, 69), 'g': (8, 64), 'h': (3, 84)}
    >>> {k:(i,v) for i,(k,v) in enumerate(res, 1)}
    {'d': (1, 89), 'b': (2, 85), 'h': (3, 84), 'e': (4, 82), 'c': (5, 81), 'a': (6, 70), 'f': (7, 69), 'g': (8, 64)}
  6. 关于zip
    >>> zip([1,2,3],[3,4,5,6])
    <zip object at 0x1079df348>
    >>> list(zip([1,2,3],[3,4,5,6]))
    [(1, 3), (2, 4), (3, 5)]
    >>> list(zip([1,2,3],[3,4]))
    [(1, 3), (2, 4)]
  7. 词频统计
    word_list = re.split("\W+", txt)
    c2 = Counter(word_list)
    c2.most_common(10)