美文网首页
python code

python code

作者: 心悦飞飞 | 来源:发表于2019-01-02 11:48 被阅读0次
    #enumerate 的使用
    def out(seq):
        for i,item in enumerate(seq):
            print(i,item)
    out(['小明','小名','小铭'])
    # 字典推导式
    L1 = ['username','password','name','work']
    L2 = ['admin','123456','xin yue','engineer']
    d = {i:j for i,j in zip(L1,L2)}
    print(d)
    # 集合生成式
    L1 = ['username','password','name','work']
    L2 = ['admin','123456','xin yue','engineer']
    L2.extend(L1)
    S = {i for i in L2}
    print(S)
    
    from collections import OrderedDict
    
    
    def from_key_val_list(value):
        """获取一个对象并测试它是否可以表示为字典,除非它不能这样表示,否则返回OrderedDict"""
        if value is None:
            return None
    
        if isinstance(value,(str,bytes,int,bool)):
            raise ValueError('cannot encode objects that are not 2-tuple!')
    
        return OrderedDict(value)
    
    # test
    print(from_key_val_list([('key', 'val')]))  # OrderedDict([('key', 'val')])
    print(from_key_val_list({'key': 'val'}))    # OrderedDict([('key', 'val')])
    print(from_key_val_list('string'))  # ValueError: cannot encode objects that are not 2-tuples
    
    from collections.abc import Mapping
    
    def to_key_val_list(value):
        """获取一个对象并测试它是否可以表示为字典. 如果可以的话,返回一个元组列表"""
        if value is None:
            return None
    
        if isinstance(value,(str,bytes,int,bool)):
            raise ValueError('cannot encode objects that are not 2-tuple!')
    
        if isinstance(value,Mapping):
            value = value.items()
    
        return list(value)
    
    # test
    print(to_key_val_list([('key', 'val')]))    # [('key', 'val')]
    print(to_key_val_list({'key': 'val'}))      # [('key', 'val')]
    print(to_key_val_list('string'))    # ValueError: cannot encode objects that are not 2-tuples.
    
    def guess_filename(obj):
        """ Tries to guess the filename of the given object."""
        name = getattr(obj,'name',None)
        if (name and isinstance(name,(str, bytes)) and
                name[0] != '<' and name[-1] != '>'):
            return os.path.basename(name)
    
    def urldefragauth(url):
        """ Given a url remove the fragment and the authentication part."""
    
        scheme, netloc, path, params, query, fragment = urlparse(url)
    
        if not netloc:
            netloc, path = path, netloc
    
        netloc = netloc.rsplit('@', 1)[-1]
    
        return urlunparse((scheme, netloc, path, params, query, ''))
    
    from urllib.parse import urlparse,unquote
    
    def get_auth_from_url(url):
        """Given a url with authentication components, extract them into a tuple of username,password"""
    
        parsed = urlparse(url)
        try:
            auth = (unquote(parsed.username), unquote(parsed.password))
        except (AttributeError, TypeError):
            auth = ('','')
        return auth
    
    # test
    url='http://admin:123456@127.0.0.1:8000'
    print(get_auth_from_url(url))
    
    from urllib.parse import urlparse,urlunparse
    
    def prepend_scheme_if_needed(url, new_scheme):
        """
        Given a URL that may or may not have a scheme, prepend the given scheme.
        Does not replace a present scheme with the one provided as an argument.
        """
        scheme, netloc, path, params, query, fragment = urlparse(url, new_scheme)
    
        # urlparse is a finicky beast, and sometimes decides that there isn't a
        # netloc present. Assume that it's being over-cautious, and switch netloc
        # and path if urlparse decided there was no netloc.
        if not netloc:
            netloc, path = path, netloc
    
        return urlunparse((scheme, netloc, path, params, query, fragment))
    

    相关文章

      网友评论

          本文标题:python code

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