• 列表

列表名 = [元素1,元素2,…]

列表和C中的数组有些相似,但列表的功能更加强大,数组的元素要求是同种类型,但列表可以是混合类型。

跟数组一样,通过元素的索引值,我们可以从列表获取单个数据。

这里介绍上面代码用到的几个函数:

  1. append():用于添加列表元素,但是一次只能添加一个。
  2. extend():拓展函数,需要注意的是,由于使用列表拓展列表,所以这个函数的参数是一个列表。
  3. insert():这个函数可以指定在哪个位置插入什么元素,参数1是位置(从0开始),参数2是元素。
  • 删除元素

这里介绍一下上面用到的几个函数:

  1. remove():移除某一个元素,参数是该元素
  2. del:del可以删除整个列表,也可以按下表索引删除某个元素
  3. pop():由于python列表是把元素存放在堆栈里的,因此可以利用出栈pop把元素取出来,没有参数默认取出最后一个元素,下标作为参数可以取出相应元素。
  • 列表分片

分片得到的是列表部分内容的拷贝,原列表不会改变。

  • 列表常用操作符
  1. 比较操作符
  2. 逻辑操作符
  3. 连接操作符

    注意:用+进行连接操作时,两边数据必须是同种类型。

  4. 重复操作符
  5. 成员关系操作符

    如图,python列表中的列表元素不能直接访问,其访问方式和C语言中的二维数组相似。

  • 列表函数

用dir(list)可以查看list相关函数,这里简单介绍几个:

  1. count():参数是一个元素,返回该元素在列表中的个数。
  2. index():参数也是一个元素,返回该元素在列表中的位置,也可以分段查找,参数依次为元素、查找起始位置,结束位置。
  3. reverse():将列表中的元素从头到尾翻转。
  4. sort():默认为将列表元素升序排列,函数原型为sort(func,key,reverse=False),前两个参数一般为默认值可以不管,降序排列用sort(reverse=False)。
  • 补充
    前面我们讲了列表分片,我们可以这样copy一个列表:新列表 = 旧列表[:],也可以这样:新列表 = 旧列表。
    这两种方式有区别,前者是真正的把列表的内容copy了放到另外一个地方,后者是取走了旧列表的位置,和指针很相似。
    因此,当旧列表改变时,前者创建的列表不会发生改变,而后者创建的列表会随旧列表的改变而改变,只有前者能实现备份。感受一下下面这个具体的实例:

  • append()和extend()的区别

append是向列表添加一个元素,如果append的参数是一个列表,那么这个列表整个作为新元素。

extend是以列表的形式拓展列表,其参数本身就是个列表,相当于两个列表合并。

  • 练习
      1. 有列表 name = ['F', 'i', 'h', 'C'],如果小甲鱼想要在元素 'i' 和 'h' 之间插入元素 's',应该使用什么方法来插入?

      2. 打印列表

        换一种格式打印,用至少两种方法:

      3. 再看看列表赋值: 

        假设[1,2,3,4,5]是在内存开辟出来的空间1,[6]是在内存开辟出来的空间2。
        开始的时候old指向空间1,让new=old也就是让new也指向空间1,后来old指向空间2,并没有改变new指向的空间1,所以new还是[1,2,3,4,5]。
        如果后来没有让old指向空间2,而是改变空间1,那么new也会随之改变。如下:

      4. 请问如何将下边这个列表的'小甲鱼'修改为'小鱿鱼'?
        list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]

Python学习日志(四)的更多相关文章

  1. python学习第四讲,python基础语法之判断语句,循环语句

    目录 python学习第四讲,python基础语法之判断语句,选择语句,循环语句 一丶判断语句 if 1.if 语法 2. if else 语法 3. if 进阶 if elif else 二丶运算符 ...

  2. python学习第四次笔记

    python学习第四次记录 列表list 列表可以存储不同数据类型,而且可以存储大量数据,python的限制是 536870912 个元素,64位python的限制是 1152921504606846 ...

  3. Python学习(四)数据结构(概要)

    Python 数据结构 本章介绍 Python 主要的 built-type(内建数据类型),包括如下: Numeric types          int float Text Sequence ...

  4. python学习-第四天补充-面向对象

    python学习-第四天补充-面向对象 python 私有 --name mangling(名字修改.名字) 在命名时,通过使用两个下划线作为开头,可以使得这个变量或者函数编程私有的,但是这个其实的p ...

  5. python学习第四十八天json模块与pickle模块差异

    在开发过程中,字符串和python数据类型进行转换,下面比较python学习第四十八天json模块与pickle模块差异. json 的优点和缺点 优点  跨语言,体积小 缺点 只能支持 int st ...

  6. Python学习日志9月14日

    今天早晨又没有专心致志的学习,我感觉我可能是累了,需要减轻学习的程度来调整一下咯.这几天装电脑弄的昏天暗地的,身体有点吃不消了.时间真是神奇的魔法,这半个月来,每隔几天都有想要改变策略的想法.今天早晨 ...

  7. Python学习日志9月13日

    昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...

  8. Python 学习日志9月19日

    9月19日 周二 今天是普通的一天,昨天也是普通的一天,刚才我差点忘记写日志,突然想起来有个事情没做,回来写. 今天早晨学习<Head First HTML and CSS>第十一章节“布 ...

  9. Python学习日志_2017/09/08

    今天早晨学习了<Head First :HTML and CSS>:学习了两个章节,感觉从基础学习特别的踏实,能看懂的同时踏踏实实的锻炼了基础的能力.我个人认为无论哪个行业,最重要的永远是 ...

随机推荐

  1. Redhat6.4下安装Oracle10g

    Oracle10g_Redhat6.4 安装指南 文档说明 本文借鉴<Redhat_Linux_6.4下Oracle_10g安装配置手册><Redhat 6.4 安装 Oracle1 ...

  2. 关于C#联接数据库是出现'未在本地计算机上注册'错误的解决办法

    今天在用c#连接access数据库处理数据的时候遇到了一个诡异的问题, 未在本地计算机上注册"Microsoft.ACE.OLEDB.12.0"提供程序 我们的部分代码如下: st ...

  3. UnixBench-linux下的跑分软件

    UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具.UnixBench会执行一系列的测试,包括2D和3D图形系统的性能,测试的结果不仅仅是CPU,内存, ...

  4. rewrite

    http://www.iis.net/downloads/microsoft/url-rewrite

  5. 收藏的Android学习资源

    1. Android中混合开发系列 Android中Java与JavaScript的交互,可用来实现网页与本地APP的交互,信息的传递等: 谈谈App的混合开发,可以让一部分功能由html5开发,这部 ...

  6. RxJava简单的介绍

    1. RxJava简介 Rx(ReactiveX,响应式编程)是一种事件驱动的基于异步数据流的编程模式,整个数据流就像一条河流,它可以被观测(监听),过滤,操控或者与其他数据流合并为一条新的数据流.而 ...

  7. [BZOJ3223]Tyvj 1729 文艺平衡树

    [BZOJ3223]Tyvj 1729 文艺平衡树 试题描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区 ...

  8. C#中用radio单选Repeater循环数据,js实现

    <asp:Repeater ID="rpt" runat="server"> <ItemTemplate> <tr data-id ...

  9. sql练习(mysql版)

    学生表student 老师表teacher 课程表course 分数表test 1.数学比语文成绩高的所有学生 select a.sid from () a, () b where a.sid=b.s ...

  10. sql查询删除重复数据

    数据库UserInfo 删除重复数据 即删除重复的用户名手机号 同一个用户名手机号只保留一个用户 01.根据多个字段查询重复数据 with data1 as( select MobilePhone,N ...