Python基础:03.列表
程序员文章站
2023-09-04 19:49:12
什么是列表?列表怎么定义?列表怎么访问元素?列表中怎么进行元素的增删改查?列表的循环遍历?列表的排序?列表的去重?列表的嵌套?...
前言:我们在上一篇文章中详细的讲解了Python中的字符串,那么这篇文章我们来讲解Python中的列表,看看什么是列表。
一、列表的概念
序列是Python中最基本的数据结构,序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推,有序的储存任何数据类型。
二、列表的定义
列表的定义格式:列表名 = [元素1,元素2...]
定义一个正常列表:
info_list = ["张三",20]
print(info_list) # 输出['张三', 20]
info_list1 = list("你好世界") # list(对象),并且以传入对象分成最小单元逐个输出
print(info_list1) # 输出['你', '好', '世', '界']
定义一个特殊列表(空列表,两种方式):
my_list = []
my_list1 = list()
print(my_list) # 输出[]
print(my_list1) # 输出[]
三、访问列表的值
因为列表是有序的,所以可以通过列表的下标索引访问列表的值,或者使用切片来截取列表中的值
通过索引访问(得到列表元素本身的类型):
info_list = ["张三",20]
name = info_list[0] # 根据索引拿值
age = info_list[1]
print(name) # 输出张三
print(age) # 输出20
通过切片截取列表中的值(截取的值在列表中):
info_list = ["张三",20]
name = info_list[:1]
age = info_list[1:]
print(name) # 输出['张三']
print(age) # 输出[20]
四、列表添加元素
向列表中添加元素有三种方法:
- append()方法:向列表末尾追加元素
- extend()方法:把可迭代的对象进行拆分成最小单位,依次保存到列表中
- insert()方法:在指定位置添加指定内容
# 定义一个列表
my_list = ['内心旁骛', '毫无波澜']
# append:向列表末尾追加元素
my_list.append('万事俱备')
print(my_list)
my_list.append('无地自容')
print(my_list)
# extend:把可迭代的对象进行拆分成最小单位,依次保存到列表中
str1 = 'Python'
my_list.extend(str1)
print(my_list)
# insert:将指定内容添加到指定位置
my_list.insert(1, '开心')
print(my_list)
my_list.insert(3, '无敌')
print(my_list)
结果:
五、列表修改元素
通过列表的下标索引修改元素的值
#定义一个列表
my_list = [15,16,3.14,True,"无地自容",'休养生息']
print(my_list)
# 修改元素 列表名[index] = value
my_list[0] = 188
my_list[1] = 200
print(my_list)
结果:
六、列表查找元素
通过in、not in、index、count查找列表中的元素
# 定义一个列表
my_list = ["小红", "小明", "张三", "王麻子", "思思",True,3.14,15,15,15]
# in:某个字符串是否在列表中
if "小红" in my_list:
print("在列表中")
else:
print("没在列表")
# not in
if "小刚" not in my_list:
print("没在列表中")
else:
print("在列表中")
# index:查找元素的索引
value = my_list.index('小明')
print(value)
# count:查找元素的个数
value1 = my_list.count(15)
print(value1)
结果:
七、列表删除元素
列表中删除元素有三种方法:
- del():通过索引删除元素
- pop():通过索引删除元素
- remove():通过object删除元素
- clear():清除列表所有元素
# 创建一个列表
my_list = ["小红", "小明", "张三", "王麻子", "思思",True,3.14,15,15,15]
print(my_list)
# del:通过索引删除元素
del my_list[1]
print(my_list)
# pop:通过索引删除元素
my_list.pop(3)
print(my_list)
# remove:通过object删除元素
my_list.remove('王麻子')
print(my_list)
my_list.remove(True)
print(my_list)
# 执行顺序问题
my_list = ["hello", True, 3.14, 15, 16]
new_list = my_list
for value in new_list:
my_list.remove(value)
print(new_list)
print(my_list)
"""
分析:
1、当循环进行第一次时,下标为0,value = "hello",循环体执行完,my_list = [True,3.14,15,16], 下来执行new_list = my_list,再进入循环
2、循环第二次时,下标为1,value = 3.14,循环体执行完,my_list = [True,15,16],下来执行new_list = my_list,再进入循环
3、循环第三次时,下标为2,value = 16,循环体执行完,my_list = [True,15],下来执行new_list = my_list,再进入循环
4、循环第四次时,下标本来应该为3,但是new_list最大索引已经成了1,不满足循环条件,所以此次循环结束,输出new_list和my_list
"""
# clear:清除列表所有元素
my_list.clear()
print(my_list)
结果:
八、列表的循环遍历
就是通过for循环或者while循环将列表中的每个元素获取出来
# 定义一个列表
my_list = ["小红", "小明", "张三", "王麻子", "思思"]
# for循环遍历
for name in my_list:
print(name)
"""
输出:
小红
小明
张三
王麻子
思思
"""
# while循环遍历
# 定义计数变量
i = 0
# while循环
while i < len(my_list):
name = my_list[i]
print(name) # 循环体
i += 1 # 计数器加1
"""
输出:
小红
小明
张三
王麻子
思思
"""
九、列表的排序
列表的排序:使用sort()方法
import random
# 定义一个空列表
my_list = list()
for i in range(6):
# 定义随机数字
num = random.randint(-100, 100)
my_list.append(num)
print(my_list)
# 升序排列 my_list.sort() == my_list.sort(reverse = False)
my_list.sort()
print(my_list)
my_list.sort(reverse=False)
print(my_list)
# 降序排列
my_list.sort(reverse=True)
print(my_list)
# 倒序 切片或者reverse方法
my_list.reverse()
print(my_list)
new_list = my_list[::-1]
print(new_list)
结果:
十、列表去重
# 创建一个列表
my_list = [1,1,2,2,3,3,4,4,5,5,6,6,7,7]
print(my_list)
# 创建一个空列表(用于存储去重后的元素)
new_list = list()
for value in my_list: #遍历my_list列表
# 判断遍历出来的元素是否在new_list列表中存在,若存在,则不进行添加;若不存在,进行添加
if value not in new_list:
new_list.append(value) #将元素添加到new_list列表中
print(new_list)
# 第二种方法:使用类型转换,因为集合中的元素是唯一的,所以将列表转换成集合,最后以列表的形式输出
new_list1 = list(set(my_list))
print(new_list1)
结果:
十一、列表的嵌套
#创建一个嵌套列表
is_name = [['张三','小明'],['小花','思思']]
name = is_name[0] #将索引为0的元素赋给name
print(type(name)) #name的类型为list
print(name)
name1 = is_name[0][1] #将is_name列表中的第一个元素中的第二个值赋给name1
print(name1)
结果:
列表嵌套案例:
import random
"""
需求:一个学校,3个办公室,8个老师等待分配,编个程序实现随机分配
"""
# 创建一个学校列表(学校列表嵌套办公室列表)
is_school = [[],[],[]]
# 创建一个老师列表
is_teacher = ['A','B','C','D','E','F','G','H']
for name in is_teacher: #遍历老师列表
# 三个办公室随机,用0,1,2表示
offer = random.randint(0,2)
# 将老师添加到随机的办公室中
is_school[offer].append(name)
print(is_school)
结果:
以上就是列表的讲解,那么你收获了多少呢?下篇文章我们来讲解Python中的元祖。
本文地址:https://blog.csdn.net/liu991029/article/details/107550109