Python基础 5.3 列表

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']]
'''

猜你喜欢

转载自blog.csdn.net/weixin_44303465/article/details/85922386
5.3