list

  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]

【list】!!!切忌使用这个方法,如果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))

    推荐阅读