核心 1、list和tuple的介绍和使用
前面我们介绍了python的基本类型,有整形,浮点型、布尔型等 list python内置的一种数据类型的列表,list是一种有序的集合,可以随时添加和删除其中的元素。比如 classname是一个变量,里面存了3个元素,其中的len是获取classname的长度
>>> classname=['xlucas','tom','jack'] >>> classname ['xlucas', 'tom', 'jack'] >>> len(classname) 3 >>>用索引来访问list中每一个位置的元素,记得索引是从0 开始的。当索引超出了范围时,python会报一个indexError错误,所以要确保索引不要越界,记得最后一个元素的索引是len(classname)-1.如果想直接获取最后一个元素可以用-1做索引
>>> classname[0] 'xlucas' >>> classname[1] 'tom' >>> classname[2] 'jack' >>> classname[3] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of range >>> classname[-1] 'jack'依次类推,可以获取倒数第2个、倒数第3个
>>> classname[-2] 'tom' >>> classname[-3] 'xlucas' >>> classname[-4] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: list index out of rangelist是 一个可变的有序表,所以,可以往list中追加元素到末尾。
>>> classname.append('xulu') >>> classname ['xlucas', 'tom', 'jack', 'xulu']也可以把元素插入到指定的位置,比如往索引位置是1的位置插入spark
>>> classname.insert(1,'spark') >>> classname ['xlucas', 'spark', 'tom', 'jack', 'xulu']可以删除list中最后一个元素用pop
>>> classname.pop() 'xulu' >>> classname ['xlucas', 'spark', 'tom', 'jack']可以删除list中指定索引位置的元素pop(i)
>>> classname.pop(1) 'spark' >>> classname ['xlucas', 'tom', 'jack']可以将list中索引位置的元素替换成其他元素,直接赋值模式就可以了
>>> classname[1]='xulu' >>> classname ['xlucas', 'xulu', 'jack']一个list里面可以是不同类型的元素
>>> l=['apple',1223,True] >>> l ['apple', 1223, True]如果一个list中间的元素是一个list,这个我们应该怎么访问呢?可以看出多层就可以了。例如下面这个例子s[2]返回的结果是一个list,这样我们当这个s[2]是一个list的变量就可以了
>>> s=['python','java',['scala','R'],'spark'] >>> len(s) 4 >>> s[2] ['scala', 'R'] >>> s[2][1] 'R' >>> s[2][0] 'scala' >>>如果一个list中一个元素也没有,就是一个空的list,它的长度是0
>>> l=[] >>> len(l) 0tuple 另一种有序列表叫 元组:tuple。tuple和list很相似,但是tuple一旦初始化就不能修改。 现在classname这个tuple不能变了,它也没有append(),insert()这样的方法,其他获取元素的方式和list一样。
>>> classname=('xlucas','tom','jack') >>> classname ('xlucas', 'tom', 'jack')tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。
>>> t=(1,2) >>> t (1, 2)如果要定义一个空的tuple,可以写成()
>>> t=0 >>> t 0但是,要定义一个只有1个元素的tuple,如果你这么定义,定义的不是tuple,是1这个数。这是因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义,因此python规定,这种情况下,按小括号进行计算,计算结果自然是1,所以只有1个元素的tuple定义时必须加一个逗号,,来消除歧义
>>> t=(1) >>> t 1 >>> t=(1,) >>> t (1,)下面描述一个”可变“的tuple,下面这边是tuple里面 有个list,修改的是list元素的值,没有修改tuple元素list的值。所以本质上tuple是没有变化的
>>> t=('xlucas','php',['java','R']) >>> t ('xlucas', 'php', ['java', 'R']) >>> t[2][0]='python' >>> t[2][1]='scala' >>> t ('xlucas', 'php', ['python', 'scala'])