list+tuple的基础及操作

列表(list)基础及基础操作+tuple的小范围知识
list
一个排列有序的线性结构队列,由若干个元素组成(元素可以是任意对象)
列表是可变类型
list() :new empty(空) list
list(iterable):new list initialized from‘s items iterable:可迭代对象 例:lt = list(range(10))
列表不能一开始就定义其大小

索引,也叫下标
正索引:从左至右,从0开始,为列表的每一个元素编号
负索引:从右至左,从-1开始
左边为头部,称为下界;右边为尾部:称为上届
正负索引不能越界,否则会发生IndexErros异常报错

通过索引访问列表:
list [index] :index 就是索引,使用中括号访问
index(value,[start,[stop]]):
通过value值,来查找列表元素;[start,[stop]]:可以确定查找元素的区间
匹配第一个就立即返回索引;匹配不到,抛出ValueError 异常
count(value)
返回列表中value的次数
时间复杂度
index和count方法都是O(n)
效率随着列表元素规模的增大而下降
len( list )
可以返回列表中元素的个数 时间复杂度为:O(1)

修改元素
通过索引访问修改
list[ index ] = value 例:lt [6] = 666

列表增加、插入元素
append(object)>>>None (返回None,就地直接修改) 例子 li.append(a)
从列表的尾部追加元素,返回None ,就地修改
时间复杂度:O(1)
insert(index,object)>>>None 返回None,就地修改
例子:u = [0,1,2,3] u.insert(-1,5) print(u) result(结果):[0,1,2,5,3]
在指定的索引位置插入元素;时间复杂度:O(n)
当索引超越上下界时 上界 :尾部追加 下界:头部追加
extend(iterable)>>>None
将可迭代对象的元素追加进来;返回None 就地修改

  • list 例:list1 + list2 返回一个新的列表
    连接操作,将两个列表连接起来,产生一个新的列表,原列表不发生变化
    本质上是调用add()方法
  • list list2 = [1,2,3]*3 result [1,2,3,1,2,3,1,2,3]
    重复操作,将本列表的元素重复n次,返回一个新的列表
    列表删除元素
    remove(value)>>>None 返回None 就地修改
    从左至右查找 第一个能匹配的value值,移除该元素;时间复杂度O(n)
    pop([index])>>> item
    不指定索引index时,从列表的尾部弹出一个元素
    指定索引index时,就从索引位置弹出一个元素,索引超界时抛出IndexError错误
    时间复杂度O(n)
    clear()>>>Neno
    清除列表所有元素,剩下一个空列表
    reverse()>>>None 返回None 就地修改 例:list2.reverse()
    反转列表的元素
    sort(key = None,reverse = False)>>>None 返回None,就地修改
    对列表元素进行排序,默认为升序
    reverse为True时 反转 ,降序
    key 一个函数,指定key如何排序 list2.sort(key = funtionname) 当排序时有多个类型时,可用 key = str 将元素类型转变为str 然后进行排序 排序时会按字符串格式转化,转换拍戏 。排完后元素类型并没有改变
    in 遍历 某一元素 是否在某一个列表中 例:3 in[ 1,5,9,7,3,4] True 当元素是【list】时 取不到其中的元素 返回 False 同时是按内容匹配。当内容不一样时False 例:[a,10]/c in [ [10,a],[100,50],[c ] ] 因为列表有顺序
    is 判断 某一元素 是不是

tuple元祖:
一个有序的元素集合
元祖是不可变类型

tuple() >>> empty tuple
tuple(iterable)>>>tuple initialized from iterable‘s items

元祖元素的访问
支持索引
正索引:从左至右,从0开始,为列表的每个元素编号
负索引:从右至左,从-1开始
正负索引不可以越界,否则发生EndexError 异常
元祖通过索引访问
tuple[ index ]
index(value,[start,[stop]])
通过value,从制定区间查找泪表内的元素是否匹配
匹配到第一这个值就立即返回索引,不再往下继续遍历
匹配不到,抛出ValueError异常
count(value)返回列表中匹配的value次数
时间复杂度
index和count方法都是O(n)
随着列表数据规模的增大而效率下降
len(tuple)返回元素的个数
namedtuple(typename,field_names,verbose=False,rename=False)
命名元祖,返回一个元祖的子类,并定义了字段
filef_names 可以是空白符或者逗号分隔的字段的字符串,可以是字段的列表

原文地址:http://blog.51cto.com/12951676/2158448

时间: 2024-11-05 14:40:50

list+tuple的基础及操作的相关文章

从0开始,一起搭框架、做项目(3)公共基础数据操作类 RepositoryBase

索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们写一个基础数据的操作类,如果里面有大家不理解的地方,可采取两种方式,第一:提出来,第二:会用就行.这个类呢我一般不去修改它,因为基础操作类,大家也可以直接拷贝到自己的项目中. 项目准备 我们用的工具是:VS 2013 + SqlServer 2012 + IIS7.5 希望大家对ASP.NET MVC有一个初步的理解,理论性的东西我们不做过多解释,有些地方不理解也没关系,会用就行了,用的多

ASP.NET三层架构基础详细操作图文教程(转)

本文主要讲述Asp.net B/S结构 下基础的三层架构项目.三层主要是指的界面UI层,逻辑层,数据层.界面UI层:用于用户观看,体验的表示层.逻辑层:程序运行逻辑的封装层.数据层:程序数据相关操作的封装层. 每层当中还可以进行不同的详细划分,因为是基础教程,先领新手入门,所以不进行复杂的讲解.本来出自http://www.cnntec.com 作者:A.Z猫 转载请注明,违者必究.准备工具:Microsoft Visual Studio 2008 以下简称vs08Microsoft SQLSe

Python基础(六) 基础文件操作

今天学习python下对文件的基础操作,主要从open函数.File对象的属性.文件定位.简单操作.举例说明几个步骤开始学习,下面开始进入今天的主题: 一.open函数介绍 open函数主要是打开一个文件,创建一个file对象,相关的方法可以调用它进行读写 . 语法格式如下: 1 2 3 file object = open(文件名,打开文件的模式) file object  = with open (文件名,打开文件的模式) as 变量名 两种语法格式的不同在于下面这种方法不用输入f.clos

Linux命令行基础 、 基础命令操作 、 目录文件基本操作

  Linux命令行基础 基础命令使用 目录和文件基本管理 #################################################   一.Linux命令行基础   1. 什么是命令.命令行    命令:能够被Linux系统识别,用来完成某一类功能的指令或程序                           |--> 依赖于Shell解释器,查看:cat/etc/shells 默认为 /bin/bash    命令行:用户输入的命令及相关参数,按Enter键提交的

[原创]Scala学习:Tuple,Array,Map ,文件操作

1.Tuple:元祖.是一个有用的容器对象. 1)特点:  ① 元祖是不可变的,即,当声明完了一个元祖,那么它的长度就不可以在改变:  ② 元祖可以包含不同类型的数据,对象:   ③ 索引是从 '_1' 开始,读取元祖中的内容 ④标识:' () ' 2)代码 1 //元祖 2 def doTuple() { 3 //'()' 定义元祖 4 val pair = (100, "scala", "spark") //元祖的类型val pair: (Int, String

一些常用的基础Linux操作指令

复习的时候顺便分享我学的知识,虽不是什么牛的技术分享,只是一些基础,基础打好了技术慢慢就提高了!一起加油一起共勉! 具体的vi和vim命令集太多了,以后的随笔我也会分享出来,没必要全记住,记住常用的就好,大神也不会全都能记住的啦.,别担心... 1.目录切换命令 window中通过图形化界面和鼠标可以任意切换需要进入的目录,但Linux必须通过cd命令切换目录. 命令:cd 目录名称     切换到指定的目录下 命令:cd ../                 切换到上一层目录 命令:cd ~

[New learn] 网络基础-网络操作

代码:https://github.com/xufeng79x/NETOperation 1.简介 主要记录基本的网络操作步骤,get/post关系和区别和文件上传实现. 2.准备 需要服务器端,如果你没有完成服务器端的操作请参考[New learn] 网络基础-apache本地服务搭建(支持php) 3.网络基本操作 3.1.基本操作步骤 //step_1:创建URL //step_2:创建request //step_3:建立连接接受返回数据 //step_4:反序列化数据 举例:如下我们将

JAVA 基础 IO操作

java.io操作是java基础中的基础,如果没有io操作程序都不会运行起来,所以,又回顾了一下java.io操作的内容,里面的对象序列化是J2EE的基础,是java中分布式部署和调用实现的基础,还有很有对文件系统.对网络资源的读写等等. 对于里面的个人觉的比较重要的知识做了一个图总结了一下.如下: 这里对于重点的理解和使用总结几点 1.概念理解 对于java.io的概念一直理解的有点偏差,首先这里面涉及到一个方向性的概念,即我们数据从哪里来到哪里去,在java.io操作中以及里面的很多概念和类

C 标准库基础 IO 操作总结

其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Python 库.不过想把它用好也不容易,本文总结 C 标准库基础 IO 的常见操作和一些特别需要注意的问题,如果你觉着自己还不是大神,那么请相信我,读完全文后你肯定会有不少收获. 一.操作句柄 打开文件其实就是在操作系统中分配一些资源用于保存该文件的状态信息及文件的标识,以后用户程序可以用这个标识做各种读