list

作者: cure_py | 来源:发表于2017-05-26 15:07 被阅读0次
    1. 列表解析
    active_four['timestamp'] = [x + y[-3:] for x, y in zip(active_four['month'], active_four['day'])]
    # 
    personal_id = [x if x not in company_id else '个人' for x in user_id]
    
    1. 列表插入
    data.insert(i, data2)
    

    插入是即刻作用于list,不需要赋值就可以立刻

    1. filter函数
      语法:filter(lambda x: x >= 0, data)
      filter直接返回的结果是一个可迭代对象。要想获取其中的数据要对filter结果进行遍历。
    li = [1, 5, -3, -1, 0, 9, -10, 10]
    ret = filter(lambda x: x >= 0, li)
    res = [x for x in ret]
    
    [x for x in li if x >= 0]
    

    列表解析速度更快

    1. 测试两段代码的运行时间
    import timeit
    li = [1, 5, -3, -1, 0, 9, -10, 10]
    t1 = timeit.Timer('[x for x in filter(lambda x: x >=0, %s)]' % li)
    t2 = timeit.Timer('[x for x in %s if x >= 0]' % li)
    print(t1.timeit())
    print(t2.timeit())
    

    5.求两个list的差集、交集与并集
    差集
    ret = [ i for i in a if i not in b ]
    ret = list(set(a)^set(b))
    list(set(b).difference(set(a))) # b中有而a中没有的
    并集
    list(set(a).union(set(b)))

    6.列表删除

    li = [1,2,3,4,5,6]
    

    使用del删除对应下标的元素

    del li[2]
    [out] li = [1,2,4,5,6]
    

    使用.pop()删除最后一个元素

    li.pop()
    [out ] li = [1,2,4,5]
    

    删除指定值的元素

    li.remove(4)
    li = [1,2,5]
    

    使用切片来删除

    li = li[:-1]
    li = [1,2,3,4,5]
    

    !!!切忌使用这个方法,如果li被作为参数传入函数
    那么在函数内使用这种删除方法,将不会改变原list

    li = [1,2,3,4,5,6]
    def delete(li, index):
        li = li[:index] + li[index+1:]
    delete(li, 3)
    print li
    # 会输出[1,2,3,4,5,6]
    
    神奇的统计---统计0的个数
    a = [0, 1, 2, 4, 0, 0, 0, 2, 4, 1]
    ''.join(map(chr, a)).strip(chr(0)).count(chr(0))
    

    相关文章

      网友评论

          本文标题:list

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