• python之常用的数据处理方法


    1.生成6位数验证码

    "".join([random.choice(chars) for i in range(6)])

    2.密码加密

    import hashlib
    def encryptPwd(pwd, salt):
        h1 = hashlib.md5()
        dst = pwd + salt
        h1.update(dst.encode("utf8"))
        pwdEncode = h1.hexdigest()
        return pwdEncode.upper()
    oldPwd='123'
    newPwd=encryptPwd('123', '加盐')
    print(newPwd)
    #7843D1005A1BE1C6606D555E7993E249

    3.姓名首字母排序

    from pypinyin import lazy_pinyin
    def pYinNameMap(names):
        pyin_name_tuples = [(''.join(lazy_pinyin(n)), n) for n in names]
        pyinName = {}
    
        ss = sorted(pyin_name_tuples, key=lambda x:x[0])
        for item in ss:
            firChar = item[0][0]
            name = item[1]
            if firChar not in pyinName.keys():
                pyinName[firChar] = [name]
            else:
                pyinName[firChar].append(name)
        return pyinName
    
    pyinName=pYinNameMap(['张三','李四'])
    print(pyinName)
    #{'l': ['李四'], 'z': ['张三']}

    4.时间转为字符串类型的日期"2018年10月18日"

    import datetime
    i=datetime.datetime.now().date()
    print('%s年%s月%s日'%(i.year,i.month,i.day))
    #2018年10月18日

    5.字符串日期取年月日

    def dateToymd(date):
        (y, m, d) = map(int, date.split('-'))
        return (y, m, d)
    print(dateToymd("2018-1-3"))
    #(2018, 1, 3)

    6.字符串日期返回一星期的第几天

    date.weekday()返回的0-6代表周一--到周日

    import datetime
    def dateToymd(date):
        (y, m, d) = map(int, date.split('-'))
        return (y, m, d)
    
    def WeekToDay(date):
        ymd = dateToymd(date)
        print(ymd)
        return datetime.date(*ymd).weekday()
    
    print(WeekToDay("2018-10-18"))
    
    #(2018, 10, 18)
    #3

    datetime.datetime.isoweekday()返回的1-7代表周一--周日;

    import datetime
    def dateToymd(date):
        (y, m, d) = map(int, date.split('-'))
        return (y, m, d)
    
    def WeekToisoday(date):
        ymd = dateToymd(date)
        print(ymd)
        return datetime.date(*ymd).isoweekday()
    
    print(WeekToisoday("2018-10-18"))
    
    #(2018, 10, 18)
    #4

    7.返回两个字符串日期之前的所有日期,并且以列表的形式,eg: '2018-09-02', '2018-09-04' 返回 ['2018-09-02', '2018-09-03', '2018-09-04']

    8.一天的一段时间之后

    from datetime import datetime
    str='2018-12-11'
    timeNow=datetime.strptime(str,'%Y-%m-%d')
    print(timeNow)
    EndDate = timeNow.replace(hour=23, minute=59, second=59, microsecond=59)
    print(EndDate)
    
    #2018-12-11 00:00:00
    #2018-12-11 23:59:59.000059

    未完待续......

  • 相关阅读:
    中国剩余定理
    【BZOJ】【3053】The Closest M Points
    【BZOJ】【1878】【SDOI2009】HH的项链
    【BZOJ】【2648】SJY摆棋子&【BZOJ】【2716】【Violet 3】天使玩偶
    【UOJ Easy Round #2】
    【TYVJ 五月图论专项有奖比赛】
    【BZOJ】【3301】【USACO2011 Feb】Cow Line
    【BestCoder】【Round#41】
    【BZOJ】【1046】/【POJ】【3613】【USACO 2007 Nov】Cow Relays 奶牛接力跑
    【BZOJ】【3210】花神的浇花集会
  • 原文地址:https://www.cnblogs.com/zzy-9318/p/9813121.html
Copyright © 2020-2023  润新知