欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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]

四、列表添加元素

向列表中添加元素有三种方法:

  1. append()方法:向列表末尾追加元素
  2. extend()方法:把可迭代的对象进行拆分成最小单位,依次保存到列表中
  3. 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)

结果:
Python基础:03.列表


五、列表修改元素

通过列表的下标索引修改元素的值

#定义一个列表
my_list = [15,16,3.14,True,"无地自容",'休养生息']
print(my_list)
# 修改元素   列表名[index] = value
my_list[0] = 188
my_list[1] = 200
print(my_list)

结果:
Python基础:03.列表


六、列表查找元素

通过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)

结果:
Python基础:03.列表


七、列表删除元素

列表中删除元素有三种方法:

  1. del():通过索引删除元素
  2. pop():通过索引删除元素
  3. remove():通过object删除元素
  4. 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)

结果:
Python基础:03.列表


八、列表的循环遍历

就是通过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)

结果:

Python基础:03.列表


十、列表去重

# 创建一个列表
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)

结果:
Python基础:03.列表


十一、列表的嵌套

#创建一个嵌套列表
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)

结果:
Python基础:03.列表

列表嵌套案例:

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基础:03.列表



以上就是列表的讲解,那么你收获了多少呢?下篇文章我们来讲解Python中的元祖。

本文地址:https://blog.csdn.net/liu991029/article/details/107550109