Python-003-数据类型2--列表和元组

来源:互联网 发布:安卓好的看书软件 编辑:程序博客网 时间:2024/05/16 04:33
这里简单学习一下 Python 的列表和元组,以及一些简单方法的使用

4.列表

列表 list 是最通用的python复合数据类型。是可变的数据类型。

列表是用中括号 [ ] 括起来。

同一个列表内的值可以是不同的数据类型。且列表的元素也可以是一个列表。

>>> a = [10,'StephenG',22.10,True,[10,11,12]] # 此列表中包含一个整数,一个字符串,一个浮点数,一个布尔值,和另一个列表>>> print a[10, 'StephenG', 22.1, True, [10, 11, 12]]
>>> a[10] # 索引超过列表的最大索引时,会报溢出错误Traceback (most recent call last):  File "<pyshell#90>", line 1, in <module>    a[10] # 索引超过列表的最大索引时,会报溢出错误IndexError: list index out of range
定义一个空的列表,有以下两种方式:

>>> b = [] # [] 表示空 list>>> c = list() # list() 表示空 list>>> print b,c[] []
取列表的元素--可以使用索引,和切片的方式:

>>> a[0] # 索引 0 表示第一个元素10>>> a[1] # 索引 1 表示第二个元素,以此类推'StephenG'
也可以通过索引,为列表的某元素赋值:

>>> a[1] = 'StephenG-New' # 为列表 a 的第二个元素重新赋值>>> a[10, 'StephenG-New', 22.1, True, [10, 11, 12]]

切片:将列表切为不同的子列表,所以切片之后依然是列表,即使只有一个值

>>> a[0:3] # 切片 取索引 0 到索引 3 的元素[10, 'StephenG-New', 22.1]
>>> a[0:-1] # 切片 取索引 0 到 倒数第 1 个元素[10, 'StephenG-New', 22.1, True]
>>> a[:3] # 切片 如果起始是第一个元素,可以在冒号前省略0[10, 'StephenG-New', 22.1]>>> a[:-1] # 切片 如果起始是第一个元素,可以在冒号前省略0[10, 'StephenG-New', 22.1, True]
>>> a[1:3] # 切片 取索引 1 到索引 3 的元素['StephenG-New', 22.1]
>>> a[1:] # 切片 取索引第一个开始到最后所有元素 如果是取到最后一个元素,冒号后可以省略['StephenG-New', 22.1, True, [10, 11, 12]]
>>> a[1:10] # 切片 如果冒号后的索引大于列表长度 不会报溢出错 只会将截止最后一个元素取出来为止['StephenG-New', 22.1, True, [10, 11, 12]]
>>> a[3:2] # 切片 如果冒号前的索引大于冒号后的,不会报错,会取空列表[]
>>> a[1:3] = a[0:2] # 将第 0,1 个元素的值重新赋值给第 1,2 个元素>>> a[10, 10, 'StephenG-New', True, [10, 11, 12]]
>>> type(a[1]) # 索引取出来的是这个元素,它的类型就是这个元素的具体类型<type 'int'>>>> type(a[1:2]) # 切片之后,依然是列表,即使只有一个值,因此它的类型是列表<type 'list'>>>> a[1:2][10]
列表的几个常用方法:

len() 长度:取列表的长度

>>> len(a) # 列表 a 的长度5>>> len(a[1:3]) # a 切片之后的新列表的长度2>>> len(a[-1]) # a最后一个元素也是列表,此列表的长度3
append() 追加:在列表的最后增加新的元素

>>> a.append('New') #在 a 的最后追加新的元素,值为 'New'>>> a[10, 10, 'StephenG-New', True, [10, 11, 12], 'New']
insert() 插入: 将元素插入到指定位置

>>> a.insert(0,'New0') # 在索引 0 的元素前插入新的元素,值为'New0',后边的元素相继后移一位>>> a['New0', 10, 10, 'StephenG-New', True, [10, 11, 12], 'New']
>>> a.insert(-2,'New-2') # 在倒数第二个元素前插入新的元素,后边的元素相继后移一位(这样它其实是倒数第三个元素)>>> a['New0', 10, 10, 'StephenG-New', True, 'New-2', [10, 11, 12], 'New']
pop() 删除元素: 默认删除最后一位,也可指定位置删除
>>> a.pop() #默认删除最后一个元素'New'>>> a['New0', 10, 10, 'StephenG-New', True, 'New-2', [10, 11, 12]]
>>> a.pop(2) # 指定删除索引 2 的元素10>>> a['New0', 10, 'StephenG-New', True, 'New-2', [10, 11, 12]]
>>> a.pop(-2) # 指定删除倒数第二个元素'New-2'>>> a['New0', 10, 'StephenG-New', True, [10, 11, 12]]
count()计数:统计某元素出现的次数
>>> a.count(10) # 统计 10 出现的次数 1次1

index()取索引:从列表中找出某个值第一个匹配项的索引位置,索引从0开始

>>> a.index('New0') # 在列表 a 中查找第一个与 'New0' 匹配的元素,并返回索引0
>>> a.index('N1ew0') # 在列表 a 中查找第一个与 'Ne1w0' 匹配的元素,不存在则报错Traceback (most recent call last):  File "<pyshell#134>", line 1, in <module>    a.index('N1ew0')ValueError: 'N1ew0' is not in list

del 删除:删除某元素

>>> del a[1:2] # 删除 1:2 索引之间的元素>>> a['New0', 'StephenG-New', True, [10, 11, 12]]
extend():用另一个列表扩展当前列表
>>> b = [1,2,3] # 定义一个新列表 b>>> a.extend(b) # 将列表 b 扩展到 a 上,生成新的列表 a>>> a['New0', 'StephenG-New', True, [10, 11, 12], 1, 2, 3]
remove():移除某元素的第一个匹配项

>>> a.remove('New0') # 从 a 中查找第一个与 'New0' 匹配的元素,并删除>>> a['StephenG-New', True, [10, 11, 12], 1, 2, 3]
>>> a.remove('New0') # 从 a 中查找第一个与 'New0' 匹配的元素,并删除,如果不存在,报错Traceback (most recent call last):  File "<pyshell#137>", line 1, in <module>    a.remove('New0')ValueError: list.remove(x): x not in list

reverse():反转列表所有元素的顺序

>>> a.reverse() # 反转列表 a,生成新的列表 a>>> a[3, 2, 1, [10, 11, 12], True, 'StephenG-New']
sort():对列表的元素进行排序,并生成新列表
>>> a.sort() # 对 a 排序,并生成新列表 a>>> a[1, True, 2, 3, [10, 11, 12], 'StephenG-New']

5.元组

元组 tuple 与 list 类似,但有一个本质的区别就是:元组不可变

元组是由小括号 ( ) 括起来。

>>> a = (1,2,'abc') # 定义一个 tuple a,有三个元素>>> a(1, 2, 'abc')>>> type(a) # 查看 a 的类型<type 'tuple'>

注意1:由于元组是不可变的,在定义之后,它的元素就不可以改变(区别于列表最大的不同):

>>> a[1]=3 # 将 3 重新赋值给 a[1],会报错Traceback (most recent call last):  File "<pyshell#154>", line 1, in <module>    a[1]=3TypeError: 'tuple' object does not support item assignment
注意2:如果元组只有一个元素,定义的时候需要在元素后边加上逗号:

>>> c = (10) # 如果只是这样,看一下类型,c是一个数字>>> type(c)<type 'int'>>>> c10
>>> d = (10,) # 在10的后边加一个逗号,才是元组>>> d(10,)>>> type(d)<type 'tuple'>

切片和索引:

>>> b = () # 空元组>>> b()>>> type(b)<type 'tuple'>
>>> len(a) # 长度3>>> a[0] # 索引,返回 a 的第一个元素1>>> a[:2] # 切片,返回第一个到第三个元素(1, 2)

元组的方法:
count() 和 index()
 ;用法与列表一致。


6.字典



7.集合



8.日期



9.空值
None 空值,None不是0

>>> a = None>>> print aNone

0 0
原创粉丝点击