例1:列表切片
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names[1]) #读取第2个元素,列表的下表是从0开始的 lisi
print(names[0],names[2]) #读取第1个,第3个元素 zhangsna wangwu
print(names[0:]) #读取下标0及往后的所有元素 ['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
print(names[1:]) #读取下标1及往后的所有元素 ['lisi', 'wangwu', 'zhaoliu']
print(names[1:2]) #读取下标1及下标2前的所有元素 ['lisi']
print(names[1:3]) #读取下标1及下标3前不包括3,这叫切片 ['lisi', 'wangwu']
print(names[-1]) #读取最后1个元素 zhaoliu
print(names[-3:]) #读取倒数第三个往后的所有数据; ['lisi', 'wangwu', 'zhaoliu']
print(names[-3:-1]) #顺序都是从左往右的 ['lisi', 'wangwu']
print(names[:3]) #等于names[0:3] ['zhangsna', 'lisi', 'wangwu']
print(names[0:-1:2]) #步长2,隔开切片 ["zhangsna","wangwu"]
print(names[::2]) #等于names[0:-1:2] ["zhangsna","wangwu"]
列2:列表的追加:(追加是追加在末尾)
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.append("kitty")
print(names)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'kitty']
列3:插入到指定位置:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.insert(1, "kitty")
print(names)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
['zhangsna', 'kitty', 'lisi', 'wangwu', 'zhaoliu']
列4:修改列表内容;
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names[1] = "Brace"
print(names)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
['zhangsna', 'Brace', 'wangwu', 'zhaoliu']
列5:列表内容的删除:
删除1:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.remove("lisi")
print(names) #输出:['zhangsna', 'wangwu', 'zhaoliu']
删除2:
print(names)
del names[1] #指定下标删除
print(names) #输出:['zhangsna', 'wangwu', 'zhaoliu']
删除3:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.pop() #默认不输入下标,删除最后一个
print(names) #输出:['zhangsna', 'lisi', 'wangwu']
删除4:
print(names)
names.pop(1) #指定下标删除
print(names) #['zhangsna', 'wangwu', 'zhaoliu']
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names[1]) #读取第2个元素,列表的下表是从0开始的 lisi
print(names[0],names[2]) #读取第1个,第3个元素 zhangsna wangwu
print(names[0:]) #读取下标0及往后的所有元素 ['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
print(names[1:]) #读取下标1及往后的所有元素 ['lisi', 'wangwu', 'zhaoliu']
print(names[1:2]) #读取下标1及下标2前的所有元素 ['lisi']
print(names[1:3]) #读取下标1及下标3前不包括3,这叫切片 ['lisi', 'wangwu']
print(names[-1]) #读取最后1个元素 zhaoliu
print(names[-3:]) #读取倒数第三个往后的所有数据; ['lisi', 'wangwu', 'zhaoliu']
print(names[-3:-1]) #顺序都是从左往右的 ['lisi', 'wangwu']
print(names[:3]) #等于names[0:3] ['zhangsna', 'lisi', 'wangwu']
print(names[0:-1:2]) #步长2,隔开切片 ["zhangsna","wangwu"]
print(names[::2]) #等于names[0:-1:2] ["zhangsna","wangwu"]
列2:列表的追加:(追加是追加在末尾)
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.append("kitty")
print(names)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'kitty']
列3:插入到指定位置:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.insert(1, "kitty")
print(names)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
['zhangsna', 'kitty', 'lisi', 'wangwu', 'zhaoliu']
列4:修改列表内容;
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names[1] = "Brace"
print(names)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu']
['zhangsna', 'Brace', 'wangwu', 'zhaoliu']
列5:列表内容的删除:
删除1:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.remove("lisi")
print(names) #输出:['zhangsna', 'wangwu', 'zhaoliu']
删除2:
print(names)
del names[1] #指定下标删除
print(names) #输出:['zhangsna', 'wangwu', 'zhaoliu']
删除3:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names)
names.pop() #默认不输入下标,删除最后一个
print(names) #输出:['zhangsna', 'lisi', 'wangwu']
删除4:
print(names)
names.pop(1) #指定下标删除
print(names) #['zhangsna', 'wangwu', 'zhaoliu']
列6:查找元素的下标:
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names.index("lisi")) #输出:1
print(names[names.index("lisi")]) #输出:lisi
列7:列表相同元素个数统计:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
print(names.count("lisi")) #输出:2
names = ["zhangsna","lisi","wangwu","zhaoliu"]
print(names.index("lisi")) #输出:1
print(names[names.index("lisi")]) #输出:lisi
列7:列表相同元素个数统计:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
print(names.count("lisi")) #输出:2
列8: 列表元素的清除
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names.clear()
print(names) #输出:[]
列9:列表元素的反转:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names.reverse()
print(names) #输出:['lisi', 'zhaoliu', 'wangwu', 'lisi', 'zhangsna']
列10:列表元素的排序
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names.sort()
print(names) #输出:['lisi', 'lisi', 'wangwu', 'zhangsna', 'zhaoliu']
列11:列表元素合并:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names1 = [1,2,3,4,5]
names.extend(names1)
print(names) #输出:['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi', 1, 2, 3, 4, 5]
print(names1) #输出:[1, 2, 3, 4, 5]
列12:列表元素浅复制(浅拷贝):只拷贝第一层,更深层次不拷贝,和copy.copy一样
列1:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names2 = names.copy()
print(names)
print(names2)
names[2]="李李"
print(names)
print(names2)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
['zhangsna', 'lisi', '李李', 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
列2:
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
names2 = names.copy()
print(names)
print(names2)
names[2]="李李"
names[3][1]="bbbbb"
names[3][2]="ccccc"
print(names)
print(names2)
输出结果:
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', '李李', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
要想完整拷贝,需要用到copy模块, copy.deepcopy 深拷贝:
import copy
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
names2 = copy.deepcopy(names)
print(names)
print(names2)
names[2]="李李"
names[3][1]="bbbbb"
names[3][2]="ccccc"
print(names)
print(names2)
输出结果:
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', '李李', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
列13:列表循序:
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
for i in names:
print(i)
输出:
zhangsna
lisi
wangwu
['a', 'b', 'c']
zhaoliu
lisi
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names.sort()
print(names) #输出:['lisi', 'lisi', 'wangwu', 'zhangsna', 'zhaoliu']
列11:列表元素合并:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names1 = [1,2,3,4,5]
names.extend(names1)
print(names) #输出:['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi', 1, 2, 3, 4, 5]
print(names1) #输出:[1, 2, 3, 4, 5]
列12:列表元素浅复制(浅拷贝):只拷贝第一层,更深层次不拷贝,和copy.copy一样
列1:
names = ["zhangsna","lisi","wangwu","zhaoliu","lisi"]
names2 = names.copy()
print(names)
print(names2)
names[2]="李李"
print(names)
print(names2)
输出结果:
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
['zhangsna', 'lisi', '李李', 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', 'zhaoliu', 'lisi']
列2:
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
names2 = names.copy()
print(names)
print(names2)
names[2]="李李"
names[3][1]="bbbbb"
names[3][2]="ccccc"
print(names)
print(names2)
输出结果:
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', '李李', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
要想完整拷贝,需要用到copy模块, copy.deepcopy 深拷贝:
import copy
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
names2 = copy.deepcopy(names)
print(names)
print(names2)
names[2]="李李"
names[3][1]="bbbbb"
names[3][2]="ccccc"
print(names)
print(names2)
输出结果:
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', '李李', ['a', 'bbbbb', 'ccccc'], 'zhaoliu', 'lisi']
['zhangsna', 'lisi', 'wangwu', ['a', 'b', 'c'], 'zhaoliu', 'lisi']
列13:列表循序:
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
for i in names:
print(i)
输出:
zhangsna
lisi
wangwu
['a', 'b', 'c']
zhaoliu
lisi
浅拷贝的4种实现方式:
person = ["name",['a',100]]
方式1:
P1 = copy.copy(person)
方式2:
p2 = person[:]
方式3:
p2 = person.copy()
方式4:
p3 = list(person)
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
p1 = list(names)
names[3][1] = 100
print(p1)
输出:
['zhangsna', 'lisi', 'wangwu', ['a', 100, 'c'], 'zhaoliu', 'lisi']
person = ["name",['a',100]]
方式1:
P1 = copy.copy(person)
方式2:
p2 = person[:]
方式3:
p2 = person.copy()
方式4:
p3 = list(person)
names = ["zhangsna","lisi","wangwu",["a","b","c"],"zhaoliu","lisi"]
p1 = list(names)
names[3][1] = 100
print(p1)
输出:
['zhangsna', 'lisi', 'wangwu', ['a', 100, 'c'], 'zhaoliu', 'lisi']
浅拷贝的应用(联合账号):
person = ["name",["saving",100]]
p1 = person.copy()
p2 = person.copy()
p1[0] = 'alex'
p2[0] = 'fengjie'
p1[1][1] = 50
p2[1][1] = 30
print(p1)
print(p2)
输出结果:
['alex', ['saving', 30]]
['fengjie', ['saving', 30]]
person = ["name",["saving",100]]
p1 = person.copy()
p2 = person.copy()
p1[0] = 'alex'
p2[0] = 'fengjie'
p1[1][1] = 50
p2[1][1] = 30
print(p1)
print(p2)
输出结果:
['alex', ['saving', 30]]
['fengjie', ['saving', 30]]
8. 元组tuple:只读列表,不能增删改;
names = ('alex','jack')
只有2个方法,一个是count,一个是index.
9. 删除变量:
del name1
10.集合set 用于去重;
>>> ids = [1,2,3,1,3,1,4,5,1,2,3]
>>> id = list(set(ids))
>>> id
[1, 2, 3, 4, 5]
>>> print(set(ids))
{1, 2, 3, 4, 5}
>>> ids = [1,2,3,1,3,1,4,5,1,2,3]
>>> id = list(set(ids))
>>> id
[1, 2, 3, 4, 5]
>>> print(set(ids))
{1, 2, 3, 4, 5}