一、常用数据处理方法、
1、索引:按照号码将对应位置的数据取出使用
l=[1,2,3]
print(l[0])
print(l[1])
print(l[2])
====>
1
2
3
2、list将任意类型数据用逗号分割存在列表中
l=[1,2,3]
print(l)
====>
[1, 2, 3]
3、range:产生一堆数字(取值:顾头不顾尾)
l=range(0,10)
print(l)
for i in l:
print(i)
====>
range(0, 10)
0
1
2
3
4
5
6
7
8
9
4、切片:可以从复制数据的一部分,不影响数据本身,(顾头不顾尾)
格式:数据[头:尾:步长]
步长:隔几位取一次,默认为一
l=[1,2,3,4,5,6,7,8,9,0]
print(l[4])
print(l[0:6])
print(l[2:7:2])
print(l[:-1])
====>
5
[1, 2, 3, 4, 5, 6]
[3, 5, 7]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
5、len长度:
计数据的个数
也可计算字符串长度
l=range(0,10)
print(len(l))
s='lalala'
print(len(s))
====>
10
6
6、成员运算in和not in
l=[1,2,3,4,5,6,7,8,9,0]
print(11 in l)
print(1 in l)
print(11 not in l)
print(1 not in l)
===>
False
True
True
False
7、append追加:只能加在后面
l=[1,2,3,4,5,6,7,8,9,0]
l.append(9)
print(l)
====>
[1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 9]
ps:此处可以发现append并没用返还值(None),可知不是所有函数都有返还值可以取
8、insert插入:
l=[1,2,3,4,5,6,7,8,9,0]
l.insert(4,10)
print(l)
===>
[1, 2, 3, 4, 10, 5, 6, 7, 8, 9, 0]
同样也没有返还值可利用
9、删除:
(1)万能删除
del:同样遵循切片的格式
l=[1,2,3,4,5,6,7,8,9,0]
print(l[0:7:2])
del l[0:7:2]
print(l)
===>
[1, 3, 5, 7]
[2, 4, 6, 8, 9, 0]
(2)指定元素删除
remove:只能删除一个,有多个相同数据的删除目标时,只删除左边第一个
l=[1,2,3,4,5,6,7,8,9,6]
l.remove(6)
print(l)
====>
[1, 2, 3, 4, 5, 7, 8, 9, 6]
(3)指定索引删除,返回删除的元素
pop:每次只能剪出一个数据
l=[1,2,3,4,5,6,7,8,9,6]
print(l.pop(5))
print(l)
====>
6
[1, 2, 3, 4, 5, 7, 8, 9, 6]
10、循环
for:for 后面跟随一个变量名它会一次一次 被in后面的数据赋值覆盖,直到将其中数据取完为止,每取一次值就会将for下面的数据运行一次
格式:for i in 迭代的数据:
in后面可以跟随字符串,列表,字典,元祖
count=0
l=(1,2,3,4,5,6,7,8,9,6)
for i in l:
count+=1
print(count)
====>
1
2
3
4
5
6
7
8
9
10
11、计算某数据出现次数
count:
l=(1,2,3,4,5,6,7,8,9,6)
print(l.count(0))
print(l.count(6))
====>
0
2
12、将数据拆开加入列表
extend:只能对可变数据使用(字符串一直就不在三界之内QWQ)
s=[]
l=[1,2,3,4,5,6,7,8,9]
s.extend(l)
print(s)
print(l)
s.extend('hahaha')
print(s)
====>
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 'h', 'a', 'h', 'a', 'h', 'a']
13、数据两极反转
revrese:
l=[1,2,3,4,5,6,7,8,9]
l.reverse()
print(l)
====>
[9, 8, 7, 6, 5, 4, 3, 2, 1]
14、清空
clear:只能对可变数据使用
l=[1,2,3,4,5,6,7,8,9]
l.clear()
print(l)
====>
[]
15、拷贝:即复制数据对应内存的id
浅拷贝:= 直接复制,不管数据什么类型都拷贝,且赋值对象数据改变,被复制对象也改变
l=[1,2,3,4,5,6,7,8,9]
s=l
print(l)
print(s)
print(id(l))
print(id(s))
print(l[0] is s[0])
====>
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
1541153683776
1541153683776
True
深拷贝:from copy import deepcopy 即只拷贝不可变数据,遇到可变数据则向下找不可变数据,且会重新创建一个可变数据
l=[1,2,3,4,5,6,7,8,9]
s=l.copy()
print(l)
print(s)
print(id(l))
print(id(s))
print(l[0] is s[0])
====>
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
2375861729600
2375891085376
True
from copy import deepcopy
l=[1,2,3,4,5,6,7,8,9]
s=deepcopy(l)
l[1]=999
print(l)
print(s)
====>
[1, 999, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]