• 列表

列表名 = [元素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. Selector

    原文: https://developer.apple.com/library/ios/documentation/General/Conceptual/DevPedia-CocoaCore/Sele ...

  2. Android Studio开发Android应用如何签名

    1.使用jdk自带的工具生成keystore 使用cmd命令行进入到jdk的bin目录(比如:C:\Program Files\Java\jdk1.7.0_01\bin) 运行如下命令: C:\Pro ...

  3. EBS中加载FORM使用的JavaBean的JAR包

    1.SSH端,APP用户登录: 2.输入env,确定环境变量名称FORMS_WEB_CONFIG_FILE: 3.定位模板文件:     $AD_TOP/bin/adtmplreport.sh con ...

  4. web自动化工具-liveStyle

    web自动化工具-liveStyle LiveStyle. The first bi-directional real-time edit tool for CSS, LESS and SCSS主要用 ...

  5. redis的一些操作

    public class WnsRedisFactory { private static Cache pool = null; private static JedisConnectionFacto ...

  6. spring mvc controller间跳转 重定向 传参

    http://blog.csdn.net/jackpk/article/details/19121777/

  7. Java内部类与外部类的那些事

    昨天去笔试的时候遇到了Java的内部类的创建方式与访问权限的问题,我不懂,没写,故今天起来特意去试验一下,就有了这篇总结性的文章. Java中的内部类又分为非静态内部类(匿名内部类也是非静态的内部类) ...

  8. [CodeWars][JS]如何判断给定的数字是否整数

    问题描述: We are asking for a function to take a positive integer value, and return a list of all positi ...

  9. C# 中的委托和事件

    觉得这篇文章写的非常好,大神之作,由简入繁,对我这种初学者来说帮忙很大,特此留存下. 摘自:http://tracefact.net/CSharp-Programming/Delegates-and- ...

  10. springMVC接受JSON异常

    在springMVC 使用@RequestBody接受Json总是报如下错误: HTTP Status 500 - Handler processing failed; nested exceptio ...