python 3.x 列表的增删改查
#-------------------------列表的增加-----------------------
lista = ['Bob','jack',100,200,False,True]
listb = [1,2,3,4,5]
print("lista的初始化内存地址:"+str(id(lista)))
print("listb的初始化内存地址:"+str(id(listb)))
#列表的索引
lista[3]
#列表的切片
listm = lista[1:3]
print(listm)
#['jack', 100]
#列表的增加
#1.使用append增加列表
lista.append("你好")
print(lista) #['Bob', 'jack', 100, 200, False, True, '你好']
#2.使用insert插入
lista.insert(3,'insert3')
print(lista)
#python使用id打印内存地址
print(id(lista))
#3.使用extend插入
lista.extend(listb)
print(lista)
print(id(lista))
#['Bob', 'jack', 100, 'insert3', 200, False, True, '你好', 1, 2, 3, 4, 5]
#Tips:使用append和extend的区别
listc = [1,2,3,4,5]
listd = ['a','b','c','d','e']
#listc.append(listd)
#[1, 2, 3, 4, 5, ['a', 'b', 'c', 'd', 'e']]
#结论:使用append,是将待添加的列表整体当做一个元素添加
#访问的时候,最后添加的列表是listc的一个元素
#print(listc[5]) #['a', 'b', 'c', 'd', 'e']
listc.extend(listd)
#[1, 2, 3, 4, 5, 'a', 'b', 'c', 'd', 'e']
print(listc)
#print(listc)
#列表支持直接相加
liste = ['q','w','e','r']
listf = ['a','s','d','f']
list_sum = liste+listf
print(list_sum) #['q', 'w', 'e', 'r', 'a', 's', 'd', 'f']
#---------------------------列表的删除------------------------
'''
1.使用pop方式删除(弹出,返回值是pop(index)的元素)
2.使用remove方式删除(删除首个符合条件的元素,不是删除索引)
3.使用del方式删除(del 列表名(index)通过索引删除)
'''
#使用pop删除列表
list_g = [1,2,3,4,5,6,7]
list_g.pop()
#[1, 2, 3, 4, 5, 6]
print(list_g)
'''
#pop通过index索引
list_h = [1,2,3,4,5,6,7]
print(list_h.pop(3)) #返回的是pop的值
#remove通过实际元素删除
list_i = [1,2,3,4,5,6,7,8]
list_i.remove(5) #只操作,不返回
print(list_i)
'''
#pop结合index删除
list_h = [1,2,3,4,5,6,7]
list_h.pop(3)
#[1, 2, 3, 5, 6, 7]
print(list_h)
#使用remove删除
list_i = [1,2,3,4,5,6,7,8]
list_i.remove(5)
#[1, 2, 3, 4, 6, 7, 8]
print(list_i)
list_j = ['hello','my','name','is','parker',1,2,34,['A','B','C','D']]
list_j.remove('name')
['hello', 'my', 'is', 'parker', 1, 2, 34, ['A', 'B', 'C', 'D']]
print(list_j)
#下面三种实现的功能一致
#list_j.pop(-1) #list_j.pop(8)是一样的
list_j.remove(['A','B','C','D'])
['hello', 'my', 'is', 'parker', 1, 2, 34]
print(list_j)
#list_j.remove('hello', 'my') #报错
print(list_j)
list_k = ['hello','my','name','is','parker','1',2,3,'my',4,77]
#只删除出现的第一个
#['hello', 'name', 'is', 'parker', '1', 2, 3, 'my', 4, 77]
list_k.remove('my')
print(list_k)
#使用del删除
list_l = ['hello','my','name','is','parker',
['A', 'B', 'C', 'D'],'1',2,3,'my',4,77,False]
'''
['my', 'name', 'is', 'parker', ['A', 'B', 'C', 'D'], '1', 2, 3, 'my', 4, 77, False]
'''
del list_l[0]
#['my', 4, 77, False]
#可以通过切片删除
#['name', 'parker', '1', 3, 'my', 4, 77, False]
del list_l[0:8:2]
print(list_l)
#------------------------------修改元素-------------------------------
list_M = ['hello','my','name','is','parker',
['A', 'B', 'C', 'D'],'1',2,3,'my',4,77,False]
list_M[5]='cao'
#['hello', 'my', 'name', 'is', 'parker', 'cao', '1', 2, 3, 'my', 4, 77, False]
print(list_M)
#-----------------------------查询元素----------------------------------
'''
1.使用in进行查询
2.使用not in进行查询
注意,if和in可以叠加使用
'''
list_N = ['hello','my','name','is','parker',
['A', 'B', 'C', 'D'],'1',2,3,'my',4,77,False]
if 'my' in list_N:
print('找到了my')
if ['A', 'B', 'C', 'D'] in list_N:
print('找到了新大陆')
if [1,2,3] not in list_N:
print("没找到")
#将小码王修改为我们喜欢
list1 = [1, [1, 2, ['小码王']], 3, 5, 8, 13, 18]
list1[1:1] = '我们喜欢'
#[1, '我', '们', '喜', '欢', [1, 2, ['小码王']], 3, 5, 8, 13, 18]
print(list1)
'''
从以下三个例子看出,[a:b],是从包括a的位置开始插入,到b的位置,不包含b的位置前插入
'''
list2 = [1,2,3,4,5]
list2[1:1] = '开心玩耍'
#[1, '开', '心', '玩', '耍', 2, 3, 4, 5]
print(list2)
list2 = [1,2,3,4,5]
list2[1:2] = '开心玩耍'
#[1, '开', '心', '玩', '耍', 3, 4, 5]
print(list2)
list3 = [1,2,3,4,5]
list3[1:3] = '开心玩耍'
#[1, '开', '心', '玩', '耍', 4, 5]
print(list3)
list4 = [1, 2, 3, 5, 8, 13, 18]
list4[1:] = '你好'
#[1, '你', '好']
print(list4)