Day 2-Morning

  • 创建列表
    • 创建列表和创建普通变量一样,用中括号括起一堆数据即可(这里的数据可以是整型、字符串、浮点型...甚至可以包含另一个列表),数据间用逗号隔开。
      • eg:number=[1,2,3,4,5]
      • mix=[1,"maggie",3.14,[1,2,3]]
    • 如果暂时不知道忘列表里加什么数据时,可先创建一个空列表
      • eg:empty=[]
    • 可结合range()创建列表————将一串数字转换为一个列表
      • eg:numbers=list(range(1,6))
        print(numbers)
        执行结果:[1,2,3,4,5]
          
  • 向列表添加元素
    • 在列表尾添加单个元素:append()  append()不是一个BIF,它属于列表对象的一个方法
      • eg:number=[1,2,3,4,5]
          number.append(6)
            print(number)
        执行结果:[1,2,3,4,5,6]
    • 在列表尾添加多个元素:extend()  用一个列表来扩展另一个列表,即它的参数应该是一个列表
      • eg:number=[1,2,3,4,5]
           number.extend([7,8])
           print(number)  
        执行结果:[1,2,3,4,5,7,8]
    • 在列表任意位置插入元素:insert()  两个参数,第一个参数代表在列表中的位置,第二个参数是在该位置插入一个元素
      • eg:number=[1,2,3,4,5]
           number.insert(1,0)
           print(number)
        执行结果:[1,0,2,3,4,5]
        该例子为在1后插入0;但因为0习惯用语表示第一个数,即,应该为在0后插入0
      • eg:number=[1,2,3,4,5]
           number.insert(0,0)
           print(number)
        执行结果:[0,1,2,3,4,5]
  • 从列表中获取元素
    • 和数组一样,可通过元素的索引值(index)从列表获取单个元素(列表索引值从0开始)
    • number=['0','1','2','4','3']
      print(number[3])
      number[3],number[4] = number[4],number[3]#交换位置,前面的位置顺序 = 后面的位置顺序
      print(number)

       执行结果:'4'
                ['0','1','2','3','4']

  • 从列表删除元素
    • remove() 删除元素:不需知道要删除元素在列表中的位置,只需知道它存在于该列表即可(若不存在,则报错;若有多个,则只删除第一个)
    • number=['0','1','2','4','3']
      print(number[3])
      number.remove("4")
      print(number)

       执行结果:'4'
                 ['0','1','2','3']

    • del 是一个语句,而不是一个列表的方法,因此不必有()小括号。且,del可指定删除某个位置的元素;也可直接删除整个列表(del 列表名)
      number=['0','1','2','4','3']
      print(number[3])
      del number[3]
      print(number)

      执行结果:'4'
                 ['0','1','2','3']

    • pop() 方法“弹出”元素:默认弹出列表中最后一个元素;但也可以将索引值作为参数,弹出相应元素
      number=['0','1','2','3','4']
      print(number.pop())
      print(number.pop())
      print(number.pop(0))
      print(number)

      执行结果:'4'
                '3'
                 '0'
                 ['1','2']

      • 评判使用del语句还是pop()方法的标准:

        • 若要从列表中永久删除一个元素,且不再以任何方式使用它,则使用del语句
        • 若要在删除元素后还能继续使用它,则使用pop()方法
  • 列表分片(slice)
    • 列表分片是建立在原列表上的一个拷贝(或副本),原列表不会发生改变。

      number=['0','1','2','3','4']
      print(number[0:2])  #['0','1']
      print(number[:2])   #['0','1']
      print(number[1:]) #['1','2','3','4']
      print(number[:]) #['0','1','2','3','4']
      • 格式:开始位置 (冒号): 结束位置 (不包括结束位置的元素)

      • 若没有开始位置,则默认0
      • 若没有结束位置,则从开始位置一直到列表末尾的所有元素
      • 若没有放入任何索引值,只有冒号,则将得到整个列表的拷贝
    • 进阶玩法:三个参数(第三个代表步长,默认为1)
      number=[0,1,2,3,4]
      print(number[0:3]) #[0,1,2]
      print(number[0:3:1]) #同上,默认步长为1
      print(number[0:5:2]) #[0,2,4] 步长为2(每两个取出一个)
      print(number[::2]) #同上
      print(number[::-1]) #[4,3,2,1,0] 步长为-1,相当于复制一个翻转的列表(逆序)
  • 常用的操作符
    • 比较运算符:列表比较大小,从第一个元素开始比较;同理,字符串也是从第一个字符对应的ASCII码值得大小开始比较

      list1=[123]
      list2=[234]
      print(list1>list2) #False list3=[123,456]
      list4=[234,123]
      print(list3>list4) #False
    • 连接操作符(+):可将多个列表对象合并在一起(相当于extend()),但不能实现列表添加新元素的操作(用append()或insert())
      list1=[123,456]
      list2=[234,123]
      list3=list1+list2
      print(list3) #[123,456,234,123]
    • 重复操作符(*)
      list1=[123]
      print(list1*3) #[123,123,123]
    • 复合赋值运算符
      list1=[123]
      list1*=3
      print(list1) #[123,123,123]
    • 成员关系操作符(in和not in)----只能判断一个层次的成员关系,若要判断列表里面的列表的元素,则应先进入一层列表
      list1=[123,456,[789]]
      print(123 in list1) #True
      print(789 in list1) #False
      print(789 in list1[2]) #True

      可用索引号去访问列表中的值,那访问列表中的列表的值,就相当于访问二维数组,eg:list1[2][0] 结果为789

  • 列表的方法:print(dir(list))
    • count():计算其参数在列表中出现的次数
    • index():返回其参数在列表中的位置
      • index()还有两个参数,用于限定查找范围。(因此可查找重复出现的目标的下一个位置)

        # coding=gbk
        list1=[1,1,2,3,5,8,13,21]
        print(list1.count(1)) #2 1出现2次
        print(list1.index(1)) #0 1在0位置(但其实在1位置仍出现,所以再加入参数限定范围查找)
        start=list1.index(1)+1 #起始点为0位置+1
        stop=len(list1) #结束点为整个列表长度处(末尾)
        print(list1.index(1,start,stop))#1 这样就可以找完所有目标出现的位置

          Q:只能返回一个值?所以只能一个个地查找?而不能将start设为列表开头,stop设为列表结尾?

    • reverse():将整个列表原地翻转(逆序)eg:list1.reverse()
    • sort():用指定方式对列表的成员进行排序【永久性】,默认不需要参数,从小到大排序 eg:list1.sort()
      • 若需要从大到小的排序,则先sort()从小到大,在reverse()翻转
      • 或者:sort()三个参数:sort(func,key,reverse)
                           func和key参数用于设置排序的算法和关键字,默认是归并排序;reverse默认为False,要颠倒顺序,只需改为list1.sort(reverse=True)
    • sorted():临时排序,不影响列表元素原来的排列顺序
  • 元组:不可改变(像字符串一样)————不可改变的列表称为元组
  • 创建和访问一个元组:大部分时候用小括号(,逗号才是关键!)
    # coding=gbk
    tuple1=(1,2,3,4,5,6)
    print(tuple1) #(1,2,3,4,5,6)
    print(tuple1[1]) #2 访问元组1的索引号为1的元素
    print(tuple1[4:]) #(5,6) 分片方式访问 temp1=(1)
    print(type(temp1))#<class 'int'> type()为返回参数的类型
    temp2=1,2,3
    print(type(temp2))#<class 'tuple'> 没有小括号,有,逗号,temp还是元组类型,小括号只是起到补充的作用
    temp3=()
    print(type(temp3))#<class 'tuple'> 创建空元组,直接用小括号即可
    temp4=(1,)
    print(type(temp4))#<class 'tuple'> 若要创建的元组中只有一个元素,在后面加上一个,逗号,明确你要的是一个元组
    temp5=1,
    print(type(temp5))#<class 'tuple'>

      证明逗号(,)的关键作用例子:

    print(8*(8))		#64
    print(8*(8,)) #(8,8,8,8,8,8,8,8)
  • 更新和删除元组:先构造一个新的元组(同字符串)
    • 同样使用分片的方法

      # coding=gbk
      temp=("小鸡","小鸭","小猪")
      temp=temp[:2]+("小狗",)+temp[2:] #不能省略小括号(),也不能省略逗号(,)!
      print(temp) #("小鸡","小鸭","小狗","小猪") temp=temp[:1]+temp[3:] #保留第一个和最后一个,间接删除第二个和第三个
      print(temp) #("小鸡","小猪")

  暂告一段落~明天回家啦啦啦~

python之列表、元组的更多相关文章

  1. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  2. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  3. Python学习-列表元组字典操作

    一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...

  4. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

  5. python中列表 元组 字符串如何互相转换

    python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...

  6. Python之列表&元组&字典

    今天学习了Python的基本数据类型,做以下笔记,以备查用. 一.列表 列表的常用方法: 1.append()方法 def append(self, p_object): # real signatu ...

  7. python --- 04 列表 元组

    一 .列表 在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求 1.列表存在索引和切片. 和字符串是一样的. 2.增删改查操作 1).增加 1. .append(" ...

  8. python基础-列表元组字典

    1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...

  9. 【python】列表&&元组&&字典

    列表:用“[]”包裹,可对值增删改. 列表遍历: 方法一: alist=["a","b","c","d","e ...

  10. python中列表元组字符串相互转换

    python中有三个内建函数:列表,元组和字符串,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示: >>> s = "xxxxx ...

随机推荐

  1. 给 textbox TextMode="password" 赋值后显示出来

    在做一个修改用户资料的页面的时候,发现用 <asp:TextBox ID="txtPwd" runat="server" TextMode="P ...

  2. 使用expect实现自动交互,shell命令行自动输入,脚本自动化,变量引用,expect spawn执行带引号命令,expect 变量为空,不生效,不能匹配通配符*,函数,数组

    背景 有需求,在允许命令或者脚本跳出交互行,需要进行内容输入,但需要人手动输入,不是很方便,此时可以通过expect来实现自动互动交互. expect是一个自动交互功能的工具,可以满足代替我们实际工作 ...

  3. numpy 构建深度神经网络来识别图片中是否有猫

    目录 1 构建数据 2 随机初始化数据 3 前向传播 4 计算损失 5 反向传播 6 更新参数 7 构建模型 8 预测 9 开始训练 10 进行预测 11 以图片的形式展示预测后的结果 搭建简单神经网 ...

  4. 【转】git2.9.2使用总结

    git2.9.2使用总结 1.系统:Windows7 2.git版本:2.9.2 由于我的git版本是最新版,后面我出现的坑就是最新版本的问题. 3.托管环境:开源中国的码云 . 使用步骤 1.在码云 ...

  5. Redis集群部署与维护

    Redis集群部署与维护 目录: 一. 集群架构 二. 集群部署 1. 创建redis-cluster目录 2. 编译redis 3. 编辑redis配置文件 4. 配置redis集群 5. redi ...

  6. 【单元测试框架unittest】

  7. 日常工作问题解决:centos7下使用yum安装软件报yum.pid锁定

    问题描述: 在centos7下使用yum进行软件安装时报yum.pid已经被锁定,如下所示: [root@centos7-129 ~]# yum -y install dhcp 已加载插件:faste ...

  8. vue-cli开发-搭建项目(一)

    前言 vue-cli是Vue官方提供的命令行工具,可用于快速搭建大型单页应用.集成了webpack环境及主要依赖,对于项目的搭建.打包.维护管理等都非常方便快捷.建议先熟悉 Vue 本身之后再研究 C ...

  9. [转帖]Cacls和ICacls

    Cacls和ICacls https://www.cnblogs.com/Aley/p/11089538.html Need Study 解释:  Cacls:显示或修改文件的访问控制列表(ACL) ...

  10. 脉脉的一道网红Java面试题

    题目如下: public class Test { public static void main(String[] args) { int a = 10; int b = 10; // 需要在met ...