1 列表的概述
列表是一个有序的,可修改的,元素以逗号分割,以中括号包围的序列。
列表的索引和字符串的索引类似,但不完全相同,因为列表可以修改所以我们可以通过列表的索引来修改列表。
定义列表格式:
变量名= [ 元素1,元素2,元素3,............]
列表的作用:存储多个数据
2 python列表的定义以及查看列表类型
name = ['zs','ls','ww']
print(name)
print(type(name))
['zs', 'ls', 'ww']
<class 'list'>
通过索引获取列表中的元素:
ret = name[0]
print(ret)
zs
3. 列表的循环遍历
names = ['zs','ls','ww']
for name in names:
print(name)
(1)列表的添加
append 追加,在列表的尾部加入指定的元素
extend 将指定的序列的元素依次追加到列表的尾部(合并),不会去重复内容
insert 将指定的元素插入到对应的索引位上,注意负索引倒序插入,超过索引就会在末尾插入
lst = ['zs','ls','ww']
lst.append('赵四')
print(lst)
['zs', 'ls', 'ww', '赵四']
lst = ['zs','ls','ww']
lst.append('赵四')
print(lst)
lst.insert(0,'唐僧')
print(lst)
lst.insert(2,'张三')
print(lst)
['zs', 'ls', 'ww', '赵四']
['唐僧', 'zs', 'ls', 'ww', '赵四']
['唐僧', 'zs', '张三', 'ls', 'ww', '赵四']
lst1 = ['zs','ls','ww']
lst2 = ['悟空','八戒','唐僧']
lst3 = lst1 + lst2
print(lst3)
['zs', 'ls', 'ww', '悟空', '八戒', '唐僧']
lst1 = ['zs','ls','ww']
lst2 = ['悟空','八戒','唐僧']
lst1.extend(lst2)
print(lst1)
['zs', 'ls', 'ww', '悟空', '八戒', '唐僧']
(2)列表的删除
pop 弹出,返回并删除指定索引位上的数据,默认删除索引位-1的数据(从右向左删除)
扫描二维码关注公众号,回复:
4805974 查看本文章
remove 从左向右删除一个指定的元素
del 删除整个列表或列表的数据,del是python的内置功能,不是列表独有的
lst1 = ['zs','ls','ww','sq']
lst2 = ['悟空','八戒','唐僧','沙僧']
lst3 = lst1.pop()
print(lst3)
print(lst1)
#按照索引删除
lst4 = lst2.pop(1)
print(lst2)
print(lst4)
'''
sq
['zs', 'ls', 'ww']
['悟空', '唐僧', '沙僧']
八戒
'''
lst1 = ['zs','ls','ww','sq']
lst2 = ['悟空','八戒','唐僧','沙僧']
lst1.remove('ww')
print(lst1)
#clear 清空列表
lst2.clear()
print(lst2)
'''
['zs', 'ls', 'sq']
[]
'''
lst1 = ['zs','ls','ww','sq']
del lst1[0] #删除指定元素
print(lst1)
['ls','ww','sq']
(3)列表的查找
注意 :列表没有find方法
count 计数,返回要计数的元素在列表当中的个数
index 查找,从左往右返回查找到第一个指定元素的索引,如果没有找到,报错
lst1 = ['zs','ls','ww','sq']
lst1[0] = '修改' #按照索引修改
print(lst1)
['修改', 'ls', 'ww', 'sq']
lst1 = ['zs','ls','ww','sq']
lst2 = lst1[1] #按照索引查找
print(lst2)
index = lst1.index('ls') #按照关键字查找
print(index)
num = lst1.count('ls')
print(num) #计数 查看关键字个数
lst3 = lst1[0:4:2]
print(lst3) # 按照切片查找
'''
ls
1
1
['zs', 'ww']
'''
(4)列表的排序
reverse 顺序倒序
sort 按照 ASCII 码表顺序进行排序
lst1 = ['zs','ls','ww','sq']
lst2 = ['悟空','八戒','唐僧','老沙']
lst1.sort() #升序排序
print(lst1)
lst1.sort(reverse=True) #降序排序
print(lst1)
lst2.reverse() #翻转
print(lst2)
'''
['ls', 'sq', 'ww', 'zs']
['zs', 'ww', 'sq', 'ls']
['老沙', '唐僧', '八戒', '悟空']
'''
4. 列表的深浅拷贝
浅拷贝
对于浅copy来说,第一层创建的是新的内存地址,而从第二层开始,指向的都是同一个内存地址,所以,对于第二层以及更深的层数来说,保持一致性。
lst1 = ['zs','ls','ww',['sq','ew']]
# lst2 = ['悟空','八戒','唐僧','老沙','小白龙']
lst2 = lst1.copy()
#查看lst1和lst2中的内容
print(lst1)
print(lst2)
#修改lst2中的第一层内容
lst2[0] = '赵四'
print(lst1)
print(lst2)
#修改第二层内容
lst2[3][0] = '神奇'
print(lst1)
print(lst2)
'''
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['赵四', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['神奇', 'ew']]
['赵四', 'ls', 'ww', ['神奇', 'ew']]
'''
深拷贝
导入copy模块
import copy
copy.deepcopy()
import copy
#记得引入模块 否则会报错
lst1 = ['zs','ls','ww',['sq','ew']]
lst2 = copy.deepcopy(lst1)
#查看lst1和lst2中的内容
print(lst1)
print(lst2)
#修改lst2中的第一层内容
lst2[0] = '赵四'
print(lst1)
print(lst2)
#修改第二层内容
lst2[3][0] = '神奇'
print(lst1)
print(lst2)
'''
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['赵四', 'ls', 'ww', ['sq', 'ew']]
['zs', 'ls', 'ww', ['sq', 'ew']]
['赵四', 'ls', 'ww', ['神奇', 'ew']]
'''