• Python基础(二)


    列表

    列表可以一次性存储多个数据,并且可以是不同的数据类型。元素之间没有任何关联

    [数据1,数据2,数据3,数据4......]
    
    name_list = ['Tom', 'Lily', 'Rose']
    print(name_list[0])# Tom
    print(name_list[1])# Lily
    print(name_list[2])# Rose
    print(name_list[-1])# Rose
    #Python为访问最后一个列表元素提供了一种特殊语法。通过将索引指定为-1,可让Python返回最后一个列表元素
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在这里插入图片描述

    查找函数:
    index():返回指定数据所在位置的下标。

    name_list = ['Tom', 'Lily', 'Rose']
    print(name_list.index('Lily', 0, 2))# 1
    # 如果查找的数据不存在就报错
    
    • 1
    • 2
    • 3

    count():统计指定数据在当前列表中出现的次数。

    name_list = ['Tom', 'Lily', 'Rose']
    print(name_list.count('Lily'))# 1
    
    • 1
    • 2

    len():访问列表⻓度,即列表中数据的个数。

    name_list = ['Tom', 'Lily', 'Rose']
    print(len(name_list))# 3
    
    • 1
    • 2

    in:判断指定数据在某个列表序列,如果在返回True,否则返回False

    name_list = ['Tom', 'Lily', 'Rose']
    
    #结果:True
    print('Lily'in name_list)
    #结果:False
    print('Lilys'in name_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    not in:判断指定数据不在某个列表序列,
    如果不在返回True,否则返回False

    name_list = ['Tom', 'Lily', 'Rose']
    
    #结果:False
    print('Lily' not in name_list)
    #结果:True
    print('Lilys'not in name_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    增加:
    (1)append():列表末尾增加数据。列表追加数据的时候,直接在原列表⾥⾯追加了指定数据,即修改了原列表,故列表为可变类型数据。

    列表序列.append(数据)
    
    name_list = ['Tom', 'Lily', 'Rose']
    name_list.append('xiaoming')
    #结果:['Tom','Lily','Rose', 'xiaoming']
    print(name_list)
    name_list.append(11,22)
    print['Tom', 'Lily', 'Rose',[11,22]]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    note:如果append()追加的数据是⼀个序列,则追加整个序列到列表.
    可以先创建一个空列表,再使用一系列的append()语句添加元素。下面来创建一个空表,再在其中添加元素

    (2)extend():列表结尾追加数据,如果数据是⼀个序列,则将这个序列的数据逐⼀添加到列表。

    列表序列.extend(数据)S
    
    • 1

    在这里插入图片描述

    (3)insert():指定位置新增数据

    列表序列.insert(位置下标,数据)
    
    name_list = ['Tom', 'Lily', 'Rose']
    name_list.insert(1, 'xiaoming')
    #结果:['Tom','xiaoming', 'Lily', 'Rose']
    print(name_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    删除:
    (1)使用del语句删除列表中元素
    在这里插入图片描述
    (2)pop():删除指定下标的数据(如果不指定默认的下标,默认为最后⼀个),并返回该数据。
    在这里插入图片描述当使用pop()时,被弹出的元素就不再在列表中。

    name_list = ['Tom', 'Lily', 'Rose']
    del_name = name_list.pop(1)
    #结果:Lily
    print(del_name)
    #结果:['Tom','Rose']
    print(name_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (3)根据值去删除元素:remove
    在这里插入图片描述(4)清空列表:clear()
    在这里插入图片描述
    修改:修改指定下标数据
    在这里插入图片描述排序:
    (1)逆置:reverse()
    在这里插入图片描述俩次调用reverse()可以回到原来的效果

    (2)排序:sort()永久排序
    在这里插入图片描述(3)sorted():临时排序:按特定顺序显示列表元素,同时不影响它们在列表中的原始排列顺序。
    在这里插入图片描述注意,调用函数sorted()后,列表元素的排列顺序并没有变(见)。如果你要按与字母顺
    序相反的顺序显示列表,也可向函数sorted()传递参数reverse=True。

    复制:
    (1)同时省略起始索引和终止索引([:])。
    这让Python创建一个始于第一个元素,终止于最后一个元素的切片,即复制整个列表
    (2)=
    在这里插入图片描述

    列表的循环遍历:

    name_list=['Tom','Lily','Rose']
    
    i=0
    while i<len(name_list);
      print(name_list[i])
      i+=1
    
    for i in name_list:
      print(i)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    列表嵌套:
    所谓列表嵌套指的就是⼀个列表⾥⾯包含了其他的⼦列表。

    应⽤场景:要存储班级⼀、⼆、三三个班级学⽣姓名,且每个班级的学⽣姓名在⼀个列表。

    name_list = [['⼩明','⼩红','⼩绿'],['Tom','Lily', 'Rose'],['张三','李四','王']]
    
    • 1

    需求:随机分配办公室

    有三个办公室,8位⽼师,8位⽼师随机分配到3个办公室

    #准备数据(8老师+3办公室)
    import random
    teachers=['A','B','C','D','E','F','G','H']
    offices=[[],[],[]]
    
    #分配座位到办公室,取到每个老师到办公室列表中
    for name in teachers:
        num=random.randint(0,2);
        offices[num].append(name)
    
    #检查是否分配成功
    for office in offices:
        print(f'办公室人数{len(office)},老师名字')
        for name in office:
            print(name)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    元组

    列表可以⼀次性存储多个数据,但是列表中的数据允许更改。⼀个元组可以存储多个数据,元组内的数据是不能修改的。

    元组特点:定义元组使⽤⼩括号,且逗号隔开各个数据,数据可以是不同的数据类型。如果定义的元组只有⼀个数据,那么这个数据后⾯也好添加逗号,否则数据类型为唯⼀的这个数据的数据类型。

    在这里插入图片描述元组数据不⽀持修改,只⽀持查找,但是元组可以用来赋值。
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

    集合

    创建集合使⽤{123}或set(),但是如果要创建空集合只能使⽤set(),因为{}⽤来创建空字典。

    s1 = {10, 20, 30, 40, 50}
    print(s1)
    s2 = {10, 30, 20, 10, 30, 40, 30, 50}
    print(s2)
    s3 = set('abcdefg')
    print(s3)
    s4 = set()
    print(type(s4))# set
    s5 = {}
    print(type(s5))# dict
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    1.集合可以去掉重复数据;
    2.集合数据是⽆序的,故不⽀持下标;
    在这里插入图片描述
    删除数据:
    在这里插入图片描述

    discard():删除集合中指定数据,如果数据不存在也不会报错
    在这里插入图片描述
    pop():随机删除集合中某个数据,并且返回这个数据
    在这里插入图片描述
    查找数据:
    在这里插入图片描述

    字典

    在这里插入图片描述数据顺序发⽣变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使⽤同⼀的标准查找数据呢?

    答:字典,字典⾥⾯的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不⽀持下标,后期⽆论数据如何变化,只需要按照对应的键的名字查找数据即可。

    (1)创建字典的语法:
    符号为大括号+数据为键值对形式出现+每个键值对用逗号隔开

    #有数据字典
    dict1 = {'name':'Tom', 'age':20, 'gender':"男"}
    
    #空字典
    dict2 = {}
    dict3 = dict()
    
    #⼀般称冒号前⾯的为键(key),简称k;冒号后⾯的为值(value),简称v
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    增:字典序列[key] =值
    如果key存在则修改这个key对应的值;如果key不存在则新增此键值对。
    在这里插入图片描述
    删:
    在这里插入图片描述
    查:
    (1)key值查找
    在这里插入图片描述
    (2)get()

    字典序列.get(key,默认值)
    如果当前查找的key不存在
    则返回第⼆个参数(默认值),
    如果省略第⼆个参数,则返回None
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述(3)keys
    在这里插入图片描述
    (4)values:
    在这里插入图片描述(5)items:
    在这里插入图片描述
    字典的循环遍历:
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    for key in dict.keys():
    for value in dict.values():
    for item in dict.items():# 遍历元素
    for key,value in dict.items(): #遍历键值对
    
    • 1
    • 2
    • 3
    • 4

    需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。

  • 相关阅读:
    【JAVA】java泛型 详解
    C++ 迷宫问题
    猫狗分析实例利用 VGG16 网络实现 Bird 的分类。
    # 从浅入深 学习 SpringCloud 微服务架构(一)基础知识
    (附源码)ssm高考志愿智能选择系统 毕业设计 134565
    Vue基础
    引入echarts.js操作步骤
    C#更改图的PixelFormat
    webdav协议及我的笔记方案(私有部署)
    leetcode练习
  • 原文地址:https://blog.csdn.net/m0_63203388/article/details/125363827