列表的操作
列表中可以存储任何类型
列表的索引:默认从0开始
L1 = ['张三','李四','wangw',78,9.0,True,[23,45,43]]
根据下标,找到相对应的元素→列表对象[下标]
L1 = ['张三','李四','wangw',78,9.0,True,[23,45,43]]
print(L1[2])
print(L1[-1])
print(L1[2:-2])
print(L1[5:-7:-1])
输出1:
特性:str不可变,但是list是可变的。
age_list=['12','13','14','15]
#增删改查
- append():添加一个元素
age_list=['12','13','14','15']
age_list.append(16)
print(age_list)
输出1:['12', '13', '14', '15', 16]
- extend():添加一个序列中的每一个元素
age_list=['12','13','14','15']
B = ['jh','54f',65]
age_list.extend(B)
print(age_list)
输出2:['12', '13', '14', '15', 'jh', '54f', 65]
- insert():在指定的下标处前插入一个元素
age_list=['12','13','14','15']
age_list.insert(2,'hello')
print(age_list)
注意:insert(M,N)
M代表插入下标,N代表插入的元素
输出3:['12', '13', 'hello', '14', '15']
- clear():删除里面全部内容,但会返回一个[]
age_list=['12','13','14','15']
age_list.clear()
print(age_list)
输出4:[]
pop():根据下标删除元素
age_list=['12','13','14','15']
age_list.pop(2)
print(age_list)
输出5:['12', '13', '15']
remove():只移除匹配到的第一个元素
age_list=['12','13','14','15','13','14']
age_list.remove('13')
print(age_list)
输出6:['12', '14', '15', '13', '14']
del():删除一切对象
age_list=['12','13','14','15']
del age_list
print(age_list)
报出该错误的原因是,变量age_list已经被删除了
age_list=['12','13','14','15']
del age_list[-3]
print(age_list)
输出7:['12', '14', '15']
修改:先索引再修改
age_list=['12','13','14','15']
age_list[2] = 'hello'
print(age_list)
输出8:['12', '13', 'hello', '15']
注意:这里的先索引再修改跟之前的insert()函数不一样,insert()是在原有的元素上新添加元素,而修改是直接替换到某个元素。
逆置
age_list=['12','13','14','15']
age_list.reverse()
print(age_list)
输出9:['15', '14', '13', '12']
sort()排序:默认是从小到大
age_list=['12','13','14','15','12','13','14']
age_list.sort() #age_list.sort(reverse=False)
print(age_list)
输出10:['12', '12', '13', '13', '14', '14', '15']
查看:index;次数:count;len:长度
index():根据元素找下标,元素出现次数为多次时,只要找到第一个元素就会退出
age_list=['12','13','14','HELLO','12','13','14']
print(age_list.index('HELLO'))
输出11:3
找不到就会报错
count():统计元素出现的次数
age_list=['12','13','14','HELLO','12','13','14']
print(age_list.count('14'))
输出12:2
找不到就会报0
**注意:**将列表转换成字符串的时候,会把引号、中括号等符号全部当成元素转入
age_list=['12','13','HELLO']
A = str(age_list)
print(len(A))
输出13:21,转成字符串时候,数字和数字之间还要算一个空格,只有数字和数字之间才有效
元组tuple
T = (23,34,'HELLO',4)
T = (23,34,'HELLO',4)
print(T.count(4))
输出1:1
T = (23,34,'HELLO',4)
print(T.index(4))
输出:3
元组的操作比较简单,用地最多的基本上就是以上的count()和index()
集合
集合是可变的,拥有自动去重且无序的功能,只可存储不可变的类型(数字在一定范围内会自动排序)
正是因为集合的特殊性,无序,所以集合是没有索引功能的
增加add()
S = {34,'hello',54,95.2}
S.add(8)
print(S)
输出1:{34, 'hello', 8, 54, 95.2}
update():添加序列中的每一个元素
S = {34,'hello',54,95.2}
S.update({'world',99})
print(S)
输出2:{34, 'world', 99, 'hello', 54, 95.2}
删除:pop()、remove()、discard()、clear()
S = {34,'hello',54,95.2}
S.discard(54)
print(S)
输出3:{95.2, 34, 'hello'}
S = {34,'hello',54,95.2}
S.remove(54)
print(S)
输出4:{34, 'hello', 95.2}
discard()和remove()的区别就是,remove()找不到会报错,discard()找不到是不会报错的。
S = {34,'hello',54,95.2}
S.pop()
print(S)
输出5:{34, 'hello', 95.2}
pop()函数不指定元素,而是随机删除一个
S = {34,'hello',54,95.2}
S.clear()
print(S)
clear()全部删除
S = {34,'hello',54,95.2}
S.clear()
print(S)
输出6:set()
clear()函数不指定元素
思考:如果有一列表:A = ['KJdv',34,'k6f',54,34,'765gfssF',34],怎么才能达到一个自动去重的效果?
A = ['KJdv',34,'k6f',54,34,'765gfssF',34]
for i in A:
if A.count(i) > 1:
A.remove(i)
print(A)
输出:['KJdv', 'k6f', 54, '765gfssF', 34]