zoukankan      html  css  js  c++  java
  • Python的用法笔记本

    python什么都好,就是可以的选择实在太多了。所以,用这一篇博文记录一下:

    str和list互相转换

    str转list

    >>> a='apple'
    >>> list(a)
    ['a', 'p', 'p', 'l', 'e']
    

    list转str

    >>> b=['a', 'p', 'p', 'l', 'e']
    >>> ''.join(b)
    'apple'
    

    List的slicing用法

    >>> num=list(range(20))
    >>> num[:]
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    >>> num[1:10]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> num[1:-1]
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]
    >>> num[::-1]
    [19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    >>> num[1:9:-1]
    []
    >>> num[9:1:-1]
    [9, 8, 7, 6, 5, 4, 3, 2]
    

    上述例子基本可以包含 slicing 的用法了:

    num[a:b:c]

    a: 表示slice的初始位置,且slice的结果包括它
    b: 表示slice的结束位置,且slice的结果不包括它,这一点在range()函数中也是一样
    c: 表示slice的步长,若是负数,则a:bslice的顺序必须是reversed的顺序,否则就如>>> num[1:9:-1] #[]

    敲黑板,slicing操作对于tuple和string同样适用,只不过返回的仍然是tuple和string

    >>> a
    'apple'
    >>> a[::-1]
    'elppa'
    

    两个list长度对齐

    很多时候,我们需要对list进行补齐处理,然后往短的list后面补None或者0之类的值。其实,语法很简单,就是有时候想不到哈哈。

    首先,对于字符串,python有一个zfill()函数可以往前补0

    >>> s='123'
    >>> s.zfill(6)
    '000123'
    

    然后,对于list呢,我的方法只能这样了:

    >>> a=list(range(3))
    >>> b=list(range(5))
    >>> a.extend([0 for _ in range(len(b)-len(a))])
    >>> a
    [0, 1, 2, 0, 0]
    

    字符串str的前缀或者后缀识别

    str.endswith(suffix[, start[, end]])
    

    Python3 endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。

    str.startswith(str, beg=0,end=len(string));
    

    startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

    • 用法:

    比如下述用法,返回特征中后缀带 _cat的columns名称

    c_cat = [c for c in train.columns if c.endswith('_cat')]
    

    判断字符串全为数字

    python有个isdigit()函数,如果str全为数字,则返回true

    关于矩阵生成

    numpy可以生成对角矩阵

    >>> np.eye(5)
    array([[ 1.,  0.,  0.,  0.,  0.],
           [ 0.,  1.,  0.,  0.,  0.],
           [ 0.,  0.,  1.,  0.,  0.],
           [ 0.,  0.,  0.,  1.,  0.],
           [ 0.,  0.,  0.,  0.,  1.]])
    

    numpy生成三角矩阵

    >>> np.tri(3,3,0)
    array([[ 1.,  0.,  0.],
           [ 1.,  1.,  0.],
           [ 1.,  1.,  1.]])
    >>> np.tri(3,3,-1)
    array([[ 0.,  0.,  0.],
           [ 1.,  0.,  0.],
           [ 1.,  1.,  0.]])
    

    list里的部分元素进行排序

    有时候,我们只需要对a[3:]的元素进行排序,并且进行inplace替换,貌似只能这样

    >>> a
    [8, 7, 6, 5, 4, 3, 2, 1]
    >>> a[3:]=sorted(a[3:])
    >>> a
    [8, 7, 6, 1, 2, 3, 4, 5]
    
    • Reference:
    1. python slice的几个小点总结
    2. 关于三角矩阵
  • 相关阅读:
    Step by step Dynamics CRM 2013安装
    SQL Server 2012 Managed Service Account
    Step by step SQL Server 2012的安装
    Step by step 活动目录中添加一个子域
    Step by step 如何创建一个新森林
    向活动目录中添加一个子域
    活动目录的信任关系
    RAID 概述
    DNS 正向查找与反向查找
    Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs
  • 原文地址:https://www.cnblogs.com/bjwu/p/9032691.html
Copyright © 2011-2022 走看看