一、通用序列操作
1.索引
Str = "hello world"
print(str[0])==>'h'
2.切片
Str = "hello world"
print(Str[0:11:2])==>hlowrd
print(Str[-1::-3])==>dooe
*取值左闭右开,有步长则按起始值加步长取值,逆时针起始值是-1
3.列表运算
[1,2,3]+[4,5,3]==>[1,2,3,4,5,3]
[1,2]*2==>[1,2,1,2]
4.是否包含
Str = "hello world"
print('h' in Str)==>True
print("h" not in Str)==>False
二、list操作
注意:元组tuple只有index,count方法
1.字符串转list
list("Hello")==>['H','e','l','l','o']==>字符串转list
2.增
注意:
1.均不会返回新值
2.append整体加列表和值;extend只能添加列表且会将元素拆开添加进去
lis=[1,2,3]
lis.append(3)==>lis[1,2,3,3]
*添加元素或列表后,添加一个新列表时,会将整个列表加进去,不会将其中元素拆开添加进去。
lis.extend([6,7,4])==>lis[1,2,3,6,7,4] *extend在添加列表时会将列表元素拆开添加进去。 lis.insert(2,'88')==>lis[1,2,88,3] *第一个参数是位置,第二个是插入的值,插入到该位置之前。
3.删
注意:
均不会返回新值,除remove外删除均以位置来决定删除谁
name = ["hello","world","李雨哲"]
del name[2]==>name=["hello","world"] *del语句可以删除更多的东西。
name.pop(0)==>name=["world","李雨哲"] *删除指定位置的参数,默认删除最后一个,可以获取删除的数。
name.remove("world")==>name=["hello","李雨哲"] *remove删除的是值
name.clear()==>name=[]
4.改
name=[1,2,3]
name[0]=3==>name=[3,2,3]
5.查
name = ["hello","world","李雨哲"]
name.index("world") *查找该值的位置,返回索引值,没找到就报错
name.count("hello") *返回查找的数值
reverse和reversed排序
name = ["hello","world","李雨哲"]
name.reverse()==>['李雨哲', 'world', 'hello']
A=reversed(name)
print(list(A))==>['李雨哲', 'world', 'hello']sort和sorted排序
name = ["1","3","0"]
name.sort(reverse=True)==>["3","1","0"]
*默认升序, reverse=True则降序;参数可以是key,key=len则按长度排序
name = "python"
a=["2","5","0"]
A=sorted(name)
aa=sorted(a)
print(A)
print(aa)
*sorted会返回一个新值,sorted函数排序后任何序列均会返回一个列表
6.复制
a = [1,2,3]
b = a
b[1] = 4==>a=[1,4,3] *赋值后改变值会影响原列表,即浅拷贝
import copy
a=[1,3,5,[4,6]]
b = copy.copy(a)
a[3][0]=3
print(b)==>[1, 3, 5, [3, 6]]
print(a)==>[1, 3, 5, [3, 6]]
a[0]=2
print(b)==>[1, 3, 5, [4, 6]]
print(a)==>a=[2,3,5,[4,6]]
*浅拷贝,更改第一层不会影响复制文件,但因为复制未达到第二层,所以当更改深层数值,会产生影响。
import copy
a=[1,3,5,[4,6]]
b = copy.copy(a)
a[3][0]=3
print(a)==>[1, 3, 5, [3, 6]]
print(b)==>[1, 3, 5, [4, 6]]
*深拷贝,数据完全不共享,完全放入独立的一个内存,怎么更改原值均不会影响复制文件
网友评论