zoukankan      html  css  js  c++  java
  • python学习之路04——列表和字典

    列表和字典

    python中的可变数据类型有:列表和字典 不可变类型:数字,字符串,元组 今天先讲列表和字典

    一.列表

    1.概念:
    变量:使用变量存储数据,但是,变量存储数据每次只能存储一个数据
    问题:如果要一次性存储多个数据的,该怎么做?
    #需求:存储5个人的年龄,求年龄的平均值
    age1 = 10
    age2 = 15
    age3 = 30
    age4 = 17
    age5 = 24
    avg = (age1 + age2 + age3 + age4 + age5) / 5
    解决办法:采用列表
    作用:相当于一个容器,可以同时存储多个数据
    本质:列表是一种有序的集合
    说明:有序指的是有顺序【存储的存放顺序和在内存中存储的顺序是相同的】
    2.创建列表:
    num = 10
    语法:变量名 = 列表
    ​ 列表名称 = [数据1,数据2.。。。。]
    说明:
    ​ a.通过[]定义列表
    ​ b.列表中存储的数据被称为元素
    ​ c.列表中的元素会从头到尾进行编号,编号从0开始,这个编号被称为索引,角标或者下标
    ​ d.索引的取值范围:0~列表中元素的个数 - 1 【0~列表的长度- 1】
    ​ e.超过索引的范围:列表的索引越界
    3.列表中元素的访问
    3.1 取值
    代码演示:
    #元素的访问
    #1.取值
    #语法:列表名[索引]
    #索引:0~4
    list1 = [543,5,46,56,6]
    num1 = list1[2]
    print(list1[2])
    print(num1)
    #列表索引越界
    #print(list1[-10]) #IndexError: list index out of range
    #print(list1[5])
    3.2.替换值
    #语法:列表名[索引] = 新值【列表中的元素本质上是一个变量,所以替换之的操作其实就是给变量重新赋值】
    list1[2] = 100
    print(list1[2])
    4.列表中的操作
    代码演示:
    #列表的操作
    #1.列表组合:+
    list1 = [54,5,45,4]
    list2 = ["abc","fhj","ghfjg"]
    #列表的组合并没有修改原来的列表,而是生成了一个新的列表
    list3 = list1 + list2
    print(list3)
    print(list1)
    print(list2)
    #2.列表元素重复:*
    #2.1列表中可以存储重复元素
    l1 = [20,20,40,45,54,20]
    print(l1)
    #2.2
    l2 = [10,20,30]
    l3 = l2 * 3
    print(l3)
    ​#3.判断元素是否在列表中:成员运算符[int not in]
    #注意:成员运算符运算的结果为布尔值
    #一般结合if语句使用
    l4 = [34,54,56,"anc"]
    print(34 in l4)
    print(34 not in l4)
    print(100 in l4)
    print(100 not in l4)
    """
    True
    False
    False
    True
    #4.列表的截取【切片】
    #4.1截取指定的区间:列表名[开始索引:结束索引]
    #特点:涉及到区间,包头不包尾 前闭后开区间:[2,4)
    l5 = [34,54,56,"anc",5,65,76,7677]
    print(l5[2:4])
    #4.2从开头截取到指定位置
    print(l5[0:5])
    print(l5[:5])
    #4.3从指定位置截取到结尾
    print(l5[3:7])
    print(l5[3:])
    #注意;如果要取到最后一个元素,可以超过索引的范围,在这种情况下不会报错
    print(l5[3:20])
    5.列表的功能
    语法:列表名.功能名()
    #1.添加元素
    #1.1 append():在列表元素的末尾追加元素
    list11 = [10,20,30]
    print(list11)
    #追加单个元素
    list11.append(40)
    print(list11)
    #追加多个元素
    #list11.append(50,60) #错误演示
    #注意:使用append功能,追加多个元素,不能直接追加,通过列表的形式追加
    list11.append([50,60])
    print(list11)
    #1.2 extend():扩展,在列表的末尾添加元素
    list12 = [10,20,30]
    print(list12)
    #追加单个元素
    #list12.extend(40) #错误演示:extend不能直接添加单个元素
    # #iterable:可迭代的 iterator
    #追加多个元素
    #注意:使用extend添加多个元素,仍然采用列表的方式添加,但是,实际上添加的只是元素【打碎添加】
    list12.extend([50,60])
    print(list12)
    print("~~~~~~~~")
    #1.3 insert() ;插入,在指定索引处插入元素
    #格式:insert(索引,插入的数据)
    list13 = [10,20,30]
    print(list13)
    list13.insert(2,40)
    print(list13)
    #注意:插入一一个列表,将整个列表插入到原列表中
    list13.insert(1,[50,60])
    print(list13)
    #2.删除元素
    #2.1 pop(索引) ;弹出,移除列表中指定索引处的元素
    list21 = [10,20,30,40,50,60]
    print(list21)
    #pop默认移除的是最后一个元素,得到的结果为被移除的元素
    result1 = list21.pop()
    print(list21)
    print(result1)
    #移除指定位置的元素
    list21.pop(2)
    print(list21)
    #2.2 remove(元素) :移除,特点:移除的是列表中的元素【在列表中从0开始能够匹配到的第一个元素】
    list22 = [10,20,30,40,50,60]
    print(list22)
    list22.remove(10) #等价于list22.pop(0)
    print(list22)
    #需求:移除列表中所有的数字10
    list23 = [10,20,30,40,50,60,10,10,10,10,10,10]
    """ list23.remove(10)
    print(list23)
    list23.remove(10)
    print(list23)
    list23.remove(10)
    print(list23)
    """
    num = 0
    element = 10
    cou = list23.count(element)
    while num < cou:
    list23.remove(element)
    print(list23)
    num += 1
    print(list23)
    ​ #2.3 clear():清除,清除列表中的所有元素,原列表变为空列表
    list24 = [10,20,30,40,50,60,10,10,10,10,10,10]
    list24.clear()
    print(list24)
    ​ #3.获取
    #语法:功能名(列表名)
    #3.1 len() length,获取列表的长度【获取列表中元素的个数】
    list31 = [10,20,30,40,50,60,10,10,10,10,10,10]
    length = len(list31)

    #3.2 max();获取列表中元素的最大值 min() 最小值
    print(max(list31))
    print(min(list31))

    #3.3 index() :索引,从列表中匹配到的第一个元素对应的索引值
    inx1 = list31.index(10)
    print(inx1)

    #3.4 count();个数,查找指定元素在列表中出现的次数
    c = list31.count(10)
    print(c)


    #4.其他
    #4.1 reverse() 反转,将列表中的元素倒序输出
    list41 = [10,20,30,40,50,60,10,10,10,10,10,10]
    list41.reverse()
    print(list41)

    #4.2 sort() 排序,默认为升序排序,注意:在列表的内部操作
    #升序
    list41.sort()
    print(list41)
    #降序
    list41.sort(reverse=True)
    print(list41)

    #sorted() 排序,默认为升序排序,注意:生成一个新的列表
    list42 = [10,20,30,40,50,60,10,10,10,10,10,10]
    #升序
    newList1 = sorted(list42)
    print(list42)
    print(newList1)
    #降序
    newList2 = sorted(list42,reverse=True)
    print(newList2)

    #按照长度排序
    list43 = ["fhjdhf","g","gfg"]
    newList3 = sorted(list43,key=len)
    print(newList3)

    #4.3 拷贝【面试题】
    #浅拷贝
    #深拷贝
    #a.从内存的角度
    #浅拷贝:引用【栈空间】
    list44 = [23,45,98]
    list45 = list44
    list45[1] = 100
    print(list44)
    print(list45)
    print(id(list44) == id(list45))


    #深拷贝:内存【实体,堆空间】
    list51 = [23,45,98]
    list52= list51.copy()
    list52[1] = 100
    print(list51)
    print(list52)
    print(id(list51) == id(list52))

    二.字典

    1.概念:
    思考问题:保存多个学生的成绩
    解决方案:字典,将学生作为key,将成绩作为value,进行存储,方便查找【一一对应】
    本质:也是一种存储数据的容器
    特点:数据以键值对的形式存储的,具有快速查找的优势
    注意:字典是无序的
    key的特点
    : ​ a.字典中的key必须是唯一的
    ​ b.字典中的key必须是不可变的
    ​ list是可变的,不能充当key
    ​ tuple是不可变的,可以充当key,数字型和字符串都可以充当key
    2.创建:
    语法:字典名称 = {key1:value1,key2:value2.....}
    代码演示:
    #1.创建字典
    #创建一个空字典
    dict1 = {}
    #创建有键值对的字典
    dict2 = {"zhangsan":60,"jack":90}
    print(dict2)
    3.方法:
    1 获取key:语法 字典名.key
    2 获取value:语法 字典名.value
    3 修改或者添加:语法:字典名[key]=value, 如果存在key则修改,否则添加新的键值对
    4 删除:语法:字典名.pop(key)删除指定的 popitem()时删除字典中最后一个
  • 相关阅读:
    SAP:建表时如果有QUAN、CURR类型的字段不能激活的问题
    ABAP:ALV的 Header中添加HTML内容
    iframe中cookie失效问题
    让flash自动显示代码提示的两种方式
    event.srcElement说明,方法,技巧
    ABAP:FI常用BAPI
    加入收藏夹功能(jQuery)
    ABAP笔记:BDC完整版例子
    BDC处理时用到结构BDCDATA
    ABAP 自动生成EXCEL文件并作简单格式处理
  • 原文地址:https://www.cnblogs.com/JameSLW-LEO/p/9612802.html
Copyright © 2011-2022 走看看