python列表

目录

目录

列表:

 列表支持下标和切片

 列表查询

列表遍历:

列表优缺点:

元素的插入和删除(insert和remove):

 修改数据:

列表的反转 reverse()

列表排序(sort):

 列表嵌套:

元素查找(index):

 案例:

 小结


列表:

        字符串中的元素不能够修改,而且元素类型单一,而列表中的元素可以修改,并且可以存放多种类型的元素.

        存储的元素可以是多种数据类型,甚至存储的数据类型都不一样,并且列表支持对元素的修改、删除等操作,列表也是一个序列式容器,支持索引和切片语法.

  1. 列表,lisi,使用[];
  2. 列表可以存放任意多个数据;
  3. 列表中可以存放任意类型的数据;
  4. 列表中数据之间使用逗号隔开
#方式1,使用类实例化的方式
#1.1 定义空列表 变量=list()
list1 = list()
print(type(list1), list1)  #<class 'list'> []

#1.2 定义非空列表,也称为类型转换 list(可迭代类型) 可迭代类型,能够使用for循环就是可迭代类型(比如 容器)
#将容器中的每个数据都作为列表中一个数据进行保存
list2 = list('abcd')
print(list2)  #['a', 'b', 'c', 'd']

#方式2,直接使用[]进行定义(使用较多)
#2.1 定义空列表
list3 = []
print(list3)  #[]

#2.2 定义非空列表
list4 = [1,3.14,'hello',False]
print(list4)  #[1, 3.14, 'hello', False]
#list列表
#创建一个空的列表
my_list = []

#创建一个带有数字类型的元素的列表
my_list = [10,20,30]

#创建一个带有字符串类型元素的列表
my_list = ['aaa','bbb','ccc']

#列表中可以再放另外一个列表
my_list = [[1,2,3],[4,5,6],[7,8,9]]

#列表中也可以同时存放不同类型的元素
my_list = ['Trump',69,2.23,[10,20,30]]

#建议列表中存放相同类型的数据,可以对数据应用统一的操作

 列表支持下标和切片

列表的切片是得到新的列表;

字符串的切片得到是新的字符串

list4 = [1,3.14,'hello',False]
print(list4)  #[1, 3.14, 'hello', False]

#获取列表中第一个数据
print(list4[0])
#获取列表中最后一个数据
print(list4[-1])
#获取中间两个数据
print(list4[1:3])

 列表查询

  • index()方法
    index()这个方法的作用和字符串中的find()作用一样,列表中是没有find()方法的,只有index()方法。
    字符串中同时存在find()和index()方法
    index()
    1.找到 返回下标
    2.没有找到,直接报错
  • count()方法
    列表.count(数据)  #统计指定数据在列表中出现的次数
list1 = ['hello',2,3,2,3,4]

#查找2出现的下标
num = list1.index(2)
print(num)

#统计数据2出现的次数
num1 = list1.count(2)
print(num1)

#统计数据20出现的次数
num2 = list1.count(20)
print(num2)

列表遍历:

my_list = [10,20,30,40]
#列表是序列式容器,支持索引、切片
print(my_list[0],my_list[1])
#1.列表的遍历
index = 0
while index < len(my_list):
    print(my_list[index])
    index += 1

#2.for循环一般都用于容器中元素的遍历
for val in my_list:
    print(val)
my_list = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]
使用while循环遍历
i = 0
while i < len(my_list):#大列表
    j = 0
    while j < len(my_list[i]):#小列表
        print(my_list[i][j])
        j += 1
    i += 1

#使用for循环遍历
for o in my_list:  #用o代替大列表
    for v in o:    #用v代替小列表
        print(v)

列表优缺点:

        列表支持:位置删除(尾部删除、指定位置删除)、值删除;指定位置插入元素、尾部位置插入元素.

        对于列表而言,尾部插入效率高一些,不需要移动元素,指定位置插入效率低;位置删除在尾部删除时效率比较高,不需要移动元素. 

  • 优点:
  1. 根据索引查找元素效率高;
  2. 尾部插入和删除元素效率高.
  • 缺点:
  1. 在指定位置插入和删除元素,会造成数据元素的移动,效率较低;
  2. 根据关键字区查找数据的话,效率比较低.

元素的插入和删除(insert和remove):

  • 添加数据
    列表.append(数据)   #向列表的尾部添加数据
    #返回:None,所以不用使用  变量 = 列表.append()
    直接在原列表中添加数据,不会生成新的列表,如果想要查看添加后的数据,直接print()打印原列表。
  • 删除数据
    列表.pop(index)  #根据下标删除列表中的数据
    index下标可以不写,默认删除最后一个
    返回:删除的数据
#定义空列表
list1 = []
print(list1)

#添加数据
list1.append('zhangsan')
print(list1)

list1.append('lisi')
list1.append('wangwu')
print(list1)

#删除数据
list1.pop()  #删除wangwu
print(list1)
num = list1.pop(1)  #删除lisi
print('删除的名称为:',num)
print(list1)
#创建空列表
my_list = []

#append追加,在尾部插入元素
my_list.append(10)
my_list.append(20)
my_list.append(30)
print(my_list)

#insert在指定位置插入指定元素
my_list.insert(0,100) #在索引为0的位置插入的元素为100
print(my_list)
my_list.insert(2,100)
print(my_list)

#删除元素:值删除,位置删除
#pop方法:用于位置删除,默认删除最后一个元素位置,如果指定了位置,则删除该位置元素
my_list.pop()
print(my_list)
my_list.pop(0)
print(my_list)

#remove移除,根据值删除
my_list.remove(100)
print(my_list)
my_list.append(20)
print(my_list)
#remove删除第一出现的值
my_list.remove(20)
print(my_list)

#清空,删除
my_list.clear()
print('列表长度:',len(my_list))

 修改数据:

        想要修改列表中的数据,直接使用下标即可。列表[下标] = 新数据

列表的反转 reverse()

字符串  反转  字符串[::-1]

列表  反转
1.列表[::-1]  得到一个新的列表,原列表不会改动;
2.列表.reverse()  直接修改原列表的数据

my_list = ['a','b','c','d','e']

#1.切片
my_list1 = my_list[::-1]
print('my_list:',my_list)
print('my_list:',my_list1)

#2.reverse
my_list.reverse()
print('my_list:',my_list)

列表排序(sort):

#前提:列表中的数据要一样

列表.sort()  # 升序,从小到大,直接在原列表中进行排序

列表.sort(resverse = True)  #降序,从大到小,直接在原列表中进行排序

my_list = [1,5,9,7,3,2,4,8,6]

#排序,升序
my_list.sort()
print(my_list)

#排序,降序
my_list.sort(reverse=True)
print(my_list)
#创建一个包含10个随机数的列表
#1.先创建一个空列表
import random
my_list = []

#2.用循环产生10个随机数
i =0
while i < 10:
    #产生(1,100)的随机数
    random_number = random.randint(1,100)
    #将随机数插入到列表中
    my_list.append(random_number)
    i += 1

print(my_list)

#对列表中的元素进行排序(sort排序)
#默认排序是从小到大,升序排列,sort的reverse默认值为false时,是从小到大排序
my_list.sort()
print(my_list)
#将sort函数的reverse默认值改成true实现从大到小排序
my_list.sort(reverse=True)
print(my_list)
#逆序
my_list.reverse()
print(my_list)

 列表嵌套:

        列表的嵌套就是指列表中数据都是列表

student_list = [['zhangsan','18','自动化测试'],['lisi','20','功能测试']]

#zhangsan
print(student_list[0][0])

#lisi
print(student_list[1][0])

#zhangsan的信息添加一个性别 男--> 向zhangsan所在的列表添加数据
student_list[0].append('男')
print(student_list)  #[['zhangsan', '18', '自动化测试', '男'], ['lisi', '20', '功能测试']]
#删除性别
student_list[0].pop()
print(student_list)  #[['zhangsan', '18', '自动化测试'], ['lisi', '20', '功能测试']]

#打印所有人员的年龄
for info in student_list:  #info是列表
    print(info[1])  #18  20

元素查找(index):

#查找元素
my_list = [10,20,30,40]

old_value = 10
new_value = 200
#index用于根据值查询,如果查询失败,则会报错
if old_value in my_list:
    #查找到old_value的位置
    pos = my_list.index(old_value)
    #根据位置值修改
    my_list[pos] = new_value

print(my_list)

my_list2 = ['aaa','bbb','ccc']
#将一个列表中的所有元素追加到当前列表的尾部
my_list.extend(my_list2)
print(my_list)

 案例:

# 一个学校, 有3个办公室, 现在有 8 位老师等待工位的分配, 请编写程序, 完成随机的分配
# 1. 待分配的 8 位老师需要存储, 我们可以用列表来暂时存储 8 位老师.
# 2. 一个学校中包含了多个办公室, 学校可用列表来表示, 学校中又包含了多个办公室, 每个办公室里可能有多个老
# 师, 办公室仍然可用列表来表示.
# 3. 从待分配老师列表中取出数据, 随机产生办公室编号, 将该老师分配到该办公室.
# 4. 打印各个办公室中的老师列表

import random
#定义学校和办公室
school = [[],[],[]]

def create_teachers():
    """创建老师列表"""
    #定义列表保存老师
    teacher_list = []
    index = 1
    while index <= 8:
        #创建老师的名字
        teacher_name = '老师' + str(index)
        #将创建好的老师的名字放进列表
        teacher_list.append(teacher_name)
        index += 1

    return teacher_list

teachers_list = create_teachers()
# print(teachers_list)

#分配老师
for t in teachers_list:
    #产生一个办公室编号的随机数
    office_number = random.randint(0,2)
    #给老师随机分配办公室
    school[office_number].append(t)

#查看各个办公室的老师
for office in school:
    for person in office:
        print(person,end = ' ')
    print()

 小结:

函数用法
insert在指定位置插入元素
append在尾部插入
pop删除尾部元素或者删除指定位置元素
remove删除指定值的元素
clear清空列表
sort对列表中的元素进行排序,默认升序(从小到大),需要指定reverse=True,可以实现降序排列
reverse对列表中的元素进行逆序
index根据值查找某个元素,并返回该元素在列表中的索引,如果查找失败,会报错,终止程序运行

extend

将一个列表中的所有元素追加到当前列表的尾部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值