- 列表解析
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]
- 列表插入
data.insert(i, data2)
插入是即刻作用于list,不需要赋值就可以立刻
- 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]
列表解析速度更快
- 测试两段代码的运行时间
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))