第二章Python的List和Tuples

来源:互联网 发布:淘宝拖把旋转桶 编辑:程序博客网 时间:2024/05/17 07:56

List

一、创建一个List

a_list=['a','b','mp3','z','example']a_list[0]aa_list[-1]example

1、List是个顺序排列的集合

2、List是个从0开始计数的数组,第一个元素肯定是a_list[0]

      所以最后一个元素是   List长度-1

3、使用负数倒序访问List元素,List的最后一个元素必定是a_list[-1]

       负数索引值的计算公式 

   a_list[-n] == a_list[len(a_list) - n]

二、截断一个List

可以从一个已经定义好的List中获取特定位置的几个元素

在list下标中指定两个索引值,这样list的返回值就是包含特定元素的新list

>>> a_list['a', 'b', 'mpilgrim', 'z', 'example']>>> a_list[1:3]           1['b', 'mpilgrim']>>> a_list[1:-1]          2['b', 'mpilgrim', 'z']>>> a_list[0:3]           3['a', 'b', 'mpilgrim']>>> a_list[:3]            4['a', 'b', 'mpilgrim']>>> a_list[3:]            5['z', 'example']>>> a_list[:]             6['a', 'b', 'mpilgrim', 'z', 'example']
1、从1开始但不包含3的List

2、从list的第二个元素到list最后一个元素之间的,但不包括最后一个

3、按下标从0到3的,但不包括3的

       效果同上,0可以省略

4、从下标n到数组最后一个,包括最后一个

5、list的全部元素


三、向List添加元素

>>> a_list = ['a']>>> a_list = a_list + [2.0, 3]         1>>> a_list                             2['a', 2.0, 3]>>> a_list.append(True)                3>>> a_list['a', 2.0, 3, True]>>> a_list.extend(['four', 'Ω'])      4>>> a_list['a', 2.0, 3, True, 'four', 'Ω']>>> a_list.insert(0, 'Ω')             5>>> a_list['Ω', 'a', 2.0, 3, True, 'four', 'Ω']
1、使用+号操作符连接list创建新的list,list没有数量限制,但这种操作实际是创建了2个list对内存消耗比较大

2、list可以装载任意数据类型的元素,不必是同一类型

3、append()方法可以将一个元素(任意数据类型)添加到list末尾

4、List实际是个类,创建一个List实际上是实例化一个类,extend()方法接收一个list作为参数并把新list的每个元素添加到原有的list中

5、insert()方法添加一个元素到list中,第一个参数是添加到list的位置的索引值
      list的元素可以重复

四、在List中查找值

>>> a_list = ['a', 'b', 'new', 'mpilgrim', 'new']>>> a_list.count('new') ①2>>> 'new' in a_list ②True>>> 'c' in a_listFalse>>> a_list.index('mpilgrim') ③3>>> a_list.index('new') ④2>>> a_list.index('c') ⑤Traceback (innermost last):File "<interactive input>", line 1, in ?ValueError: list.index(x): x not in list
1、count()方法返回查找值在list中的数量

2、如果只想知道是否包含查找的值可以使用in,返回True 或 False,这种方法要比count()方法速度快

3、使用index()方法返回值所在的索引值,也可以添加第二个参数作为查找开始位置,第三个参数作为查找结束为止

4、index()方法只返回第一次查找到的位置

5、因为-1在Python中是有意义的索引值,所以index()方法没有找到对应的位置会抛异常


五、从List中移除元素

使用del删除

>>> a_list = ['a', 'b', 'new', 'mpilgrim', 'new']>>> a_list[1]'b'>>> del a_list[1] 1>>> a_list['a', 'new', 'mpilgrim', 'new']>>> a_list[1] 2'new'
1、使用del命令删除特定位置

2、删除后,后面的元素会自动填补被删除的下标,下标之间不会有空隙

使用remove方法删除

>>> a_list.remove('new')       1>>> a_list['a', 'mpilgrim', 'new']>>> a_list.remove('new')       2>>> a_list['a', 'mpilgrim']>>> a_list.remove('new')Traceback (most recent call last):File "<stdin>", line 1, in <module>ValueError: list.remove(x): x not in list
1、使用remove()方法,remove方法接受一个值,并将第一个遇到的删除,同样下标无间隙

2、使用remove方法未能移除一个值时会抛异常

使用pop方法移

>>> a_list = ['a', 'b', 'new', 'mpilgrim']>>> a_list.pop() 1'mpilgrim'>>> a_list['a', 'b', 'new']>>> a_list.pop(1) 2'b'>>> a_list['a', 'new']>>> a_list.pop()'new'>>> a_list.pop()'a'>>> a_list.pop() 3Traceback (most recent call last):File "<stdin>", line 1, in <module>IndexError: pop from empty list
1、调用pop()方法不给参数,将默认删除list的最后一个元素

2、调用pop()方法并传一个索引值,将会删除特定位置的值

3、在空的list调用pop()方法会抛异常


七、使用boolean等式判断list是否为空

>>> def is_it_true(anything):... if anything:... print("yes, it's true")... else:... print("no, it's false")...>>> is_it_true([]) 1no, it's false>>> is_it_true(['a']) 2yes, it's true>>> is_it_true([False]) 3yes, it's true
1、在boolean等式中,空的list返回false

2、只要有一个元素,list返回true

3、是要有一个元素就是真,和元素的数据类型无关



Turples

tuple是个不可变list

>>> a_tuple = ("a", "b", "mpilgrim", "z", "example") 1>>> a_tuple('a', 'b', 'mpilgrim', 'z', 'example')>>> a_tuple[0] 2'a'>>> a_tuple[-1] 3'example'>>> a_tuple[1:3] 4('b', 'mpilgrim')
1、tuple与list定义的方式相同,只是全部元素被()包裹而不是[]

2、tuple的元素顺序是既定的,索引值从0开始

3、tuple也可以使用负数索引

4、tuple也可以截断,截断后返回一个新的tuple

5、tuple没有append,extend,insert,remove,pop方法

6、tuple可以查找变量

7、tuple判断空的方式与list相同

8、创建一个元素的tuple,必须在第一个元素后加逗号,不加的话python会认为多了对括号

   a_tuple = ('a',)
9、使用tuple一次对多个变量赋值

>>> v = ('a', 2, True)>>> (x, y, z) = v 1>>> x'a'>>> y2>>> zTrue
v是个tuple变量,同时为xyz三个变量赋不同的3个值