【Python基础】第八篇 | 容器之列表的使用

【Python基础】第八篇 | 容器之列表的使用,第1张

列表

列表list,是使用最多的一种容器(数据类型)
列表中可以存储多个数据,每个数据之间使用逗号隔开
列表中可以存放任意类型的数据

# 1.类实例化的方式(不常用)
# 1.1 定义空列表(没有任何数据的列表)
# 变量 = list()
list1 = list()
print(type(list1),list1) # []


# 1.2类型转换 list(容器)将气他的容器转换为列表
# 转换字符串会将字符串中的每个字符作为一个数据存入到列表中
list2 = list('hello')
print(type(list2),list2) # ['h', 'e', 'l', 'l', 'o']
# 2.直接使用[]进行定义(常用)
# 2.1 定义空列表
my_list = []
print(my_list) #[]
# 2.2定义非空列表
my_list1 = [1,'小明',3.14,False]
print(my_list1) # [1, '小明', 3.14, False]

  • 切片

列表支持下标和切片
列表支持下标和切片 *** 作,使用方法和字符串中的使用方法一致
区别:列表的切片得到的是列表

list1=['小明',18,1.71,True]
#获取第一个数据,名字
print(list1[0]) #小明
# 获取最后一个数据
print(list1[-1]) #True
# 获取第一第二个数据
print(list1[0:2]) #['小明', 18]
# 列表也支持len()求长度的,求数据元素个数
print(len(list1)) # 4
  • 查找

查找查找列表中数据下标的方法
在字符串中使用的find方法查找下标的,不存在返回的是-1
在列表中没有find方法,想要查找数据的下标,使用的index()方法
列表.index(数据,start,end)使用和find方法一样,同时在字符串中也有index方法
区别:返回,index()方法,找到返回第一次出现的下标,没有找到代码直接报错

查找——判断是否存在
判断容器中某个数据是否存在可以使用in关键字
数据 in 容器 # 如果存在返回True,如果不存在,返回False

查找——统计出现的次数
统计出现的次数,使用的是count()方法
列表.count(数据) # 返回 数据出现的次数

my_list = [1,3,5,7,2,3]
# 找 数据3出现的下标
num = my_list.index(3)
print(num) #1
# 找 数据4出现的下标
if 4 in my_list:
    num1 = my_list.index(4)
    print(num1)
else:
    print("不存在数据 4")
# my_list.count(4) 统计数据4出现的次数
if my_list.count(4)>0:
    num1= my_list.index(4)
    print(num1)
else:
    print('不存在数据 4')
  • 列表添加数据的方法

尾部添加(最常用)
列表.append(数据) # 将数据添加到列表的尾部
返回:返回的None(关键字,空),一般不再使用变量,来保存返回的内容,想要查看添加后的列表,需要打印的是列表

指定下标位置添加
列表.insert(下标,数据) #在指定的下标位置添加数据,如果指定下标位置本来有数据,原数据会后移
返回:返回的None(关键字,空),一般不再使用变量,来保存返回的内容,想要查看添加后的列表,需要打印的是列表

列表合并
列表1.extend(列表2) # 将列表2中的所有数据逐个添加在列表1的尾部
返回:返回的None(关键字,空),一般不再使用变量,来保存返回的内容,想要查看添加后的列表,需要打印的是列表

my_list=[]
print(my_list) #[]
# 1.向列表中添加数据 郭德纲
my_list.append('郭德纲')
print(my_list)  #['郭德纲']
# 2.向列表的尾部添加郭麒麟
my_list.append('郭麒麟')
print(my_list) # ['郭德纲', '郭麒麟']
#3 在下标位置为1的位置添加数据岳岳
my_list.insert(1,'岳岳')
print(my_list) #['郭德纲', '岳岳', '郭麒麟']
#4 .在下标位置为1 的位置添加数据于谦
my_list.insert(1,'于谦')
print(my_list) #['郭德纲', '于谦', '岳岳', '郭麒麟']

# 5.定义新的列表list1
list1 =['孙越','烧饼']
# 将list1中数据组个添加到my_list中
my_list.extend(list1)
print(my_list) #['郭德纲', '于谦', '岳岳', '郭麒麟', '孙越', '烧饼']

# 将list1作为一个整体添加到my_list
my_list.append(list1)
print(my_list) #['郭德纲', '于谦', '岳岳', '郭麒麟', '孙越', '烧饼', ['孙越', '烧饼']]
  • 列表修改

想要修改列中的指定下标位置的数据,使用的语法是:
列表[下标]=数据

# 字符串中字符不能使用下标修改
'''
# 定义列表
my_list =[1,3,5,7]
# 1.想要将下标为1的数据修改为22
my_list[1]=22
print(my_list) #[1, 22, 5, 7]
# 修改最后一个位置的数据,改为"hello"
my_list[-1] ='hello'
print(my_list) #[1, 22, 5, 'hello']

# 2.如果指定的下标不存在,会报错
# my_list[10]=10  #list assignment index out of range

-列表 删除

在列表中删除中间的数据,那么后面的数据会向前移动
根据下标删除
list.pop(下标) # 删除指定下标位置对应的数据
1.下标不写,默认删除最后一个数据(常用)
2.书写存在的下标,删除对应下标位置的数据
返回:返回的删除的数据
根据数据值删除
列表.remove(数据值) # 根据数据值删除
返回:None
注意:如果要删除的数据不存在,会报错
清空数据(一般不用)
列表.clear()

my_list=[1,3,5,7,9,2,4,6,8,0]
# 1.删除最后一个位置的数据
num = my_list.pop()
print('删除的数据为:',num) #0
print(my_list) #[1, 3, 5, 7, 9, 2, 4, 6, 8]

# 2.删除下标为1的数据3
my_list.pop(1)
print(my_list) #[1, 5, 7, 9, 2, 4, 6, 8]
# 删除数据为7的数据
my_list.remove(7) # 注意,如果列表中有多个7,只能删除以一个,可以使用循环,如果不存在,会报错
print(my_list) #[1, 5, 9, 2, 4, 6, 8]

# 清空
my_list.clear()
print(my_list) #[]
  • 列表的反转(倒置)

字符串中,反转倒置:字符串[::-1]
列表中 反转和倒置:
1.列表[::-1] # 使用切片的方法,会得到一个新列表,原列表不会发生改变
2.列表.reverse() #直接修改原列表,返回None

my_list=[1,3,5,7,9,2,4,6,8,0]
# 使用切片的方法反转,会得到一个新列表
list1 = my_list[::-1]
print("my_list:",my_list) #[1, 3, 5, 7, 9, 2, 4, 6, 8, 0]
print('list1:',list1) # [0, 8, 6, 4, 2, 9, 7, 5, 3, 1]
# 使用reverse方法,直接修改原列表
my_list.reverse()
print("my_list:",my_list) #[0, 8, 6, 4, 2, 9, 7, 5, 3, 1]
  • 列表复制

将列表中的数据复制一份,给到一个新的列表
使用场景:有一个列表,需要修改 *** 作列表中的数据,修改之后,需要和原数据进行对比,即原数据不能改
1.使用切片
变量:列表[:]
2.使用copy方法
变量=列表.copy()

my_list=[1,2,3]
my_list1 = my_list[:]
print('my_list :',my_list)  #[1, 2, 3]
print("my_list1:",my_list1) #[1, 2, 3]
my_list1[1]=22
print('my_list :',my_list) 
print("my_list1:",my_list1) 
print('-'*30)
my_list2 = my_list.copy()
print('my_list :',my_list) 
print("my_list2:",my_list2) 
my_list2[2]=33
print('my_list :',my_list) 
print("my_list2:",my_list2) 
print('-'*30)
my_list3 = my_list # 这是同一个列表,多了一个名字,引用
print('my_list :',my_list)
print('my_list3:',my_list3)
my_list3[0]=11
print('my_list :',my_list)
print('my_list3:',my_list3)
  • 列表排序

列表的排序,一般来说都是对数字进行排序的
列表.sort() #按照升序排序,从小到大
列表.sort(reverse=True) #降序排序,从大到小

my_list=[1,3,5,7,9,2,4,6,8,0]
# 升序排序
my_list.sort()
print(my_list) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#降序排序
my_list.sort(reverse=True)
print(my_list) #[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • 列表嵌套

列表嵌套,列表中订单内容还是列表
使用下标来确定获取的是什么类型的数据,然后确定可以继续进行什么 *** 作

person_info=[['张三','18','功能测试'],['李四','20','自动化测试']]
print(len(person_info)) #2
print(person_info[0]) #['张三', '18', '功能测试']
print(person_info[0][0]) #张三
print(person_info[0][0][0])
#将18改为19
person_info[0][1]='19'
print([person_info])
# 给李四所在的列表添加一个性别 信息
person_info[1].append('男')
print(person_info)
# 将张三的年龄信息删除
person_info[0].pop(1)
#person_info[0].remove('19')
print(person_info)
  • 列表去重

列表去重:列表中存在多个数据,需求,去除列表中重复的数据
方式1:
遍历原列表中数据判断在新列表中是否存在,如果存在,不管,如果不存在,假如到新的列表中
遍历:for 循环实现
判断是否存在: 可以使用in
存入数据append()
方法2:
python中还有一种数据类型(容器),称为是集合(set)
特点:集合中不能有重复的数据(如果有重复的数据会自动去重)
看可以使用集合的特点对列表去重
1.使用set()类型转换将列表转换为集合类型
2.再使用list()类型转换将集合转换为列表
缺点:不能保证数据在原列表中出现的顺序(一般来说不考虑)

my_list=[3,2,4,1,2,3,3,2,1,2,3,1]
# new_list=list(set(my_list))
# print(new_list)

new_list=[]
for i in my_list:
    if i not in new_list:
        new_list.append(i)
print(new_list)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/715165.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-25
下一篇 2022-04-25

发表评论

登录后才能评论

评论列表(0条)

保存