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

这里简单学习一下 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]=3
TypeError: 'tuple' object does not support item assignment
注意2:如果元组只有一个元素,定义的时候需要在元素后边加上逗号:

>>> c = (10) # 如果只是这样,看一下类型,c是一个数字
>>> type(c)
<type 'int'>
>>> c
10
>>> 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 a
None

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值