您的位置:首页 > 编程语言 > Python开发

python内置数据类型

2015-11-23 08:50 691 查看
python内置数据类型中Dictionary、List、Tuple这三种是非常常用的,本章对着三种内置数据类型进行简单介绍。
1、Dictionary介绍
1.1 定义dictionary对象
Dictionary即字典,它定义了键值对的一一对应关系,实际上它是一个哈希表。如
>>> d = {'server':'localhost','port':3306}
>>> d
{'port': 3306, 'server': 'localhost'}
1.2 访问dictionary对象
以上d就是一个Dictionary对象。当我们需要访问对象时,可以直接以键来查询其对应的值:
>>> d['port']
3306
>>> d['server']
'localhost'
当查询的键不存在是,Python会抛异常:
>>> d['database']
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    d['database']
KeyError: 'database'
1.3 修改dictionary对象
我们也可以随时修改dictionary对象:
>>> d['database'] = 'order_list'
>>> d
{'database': 'order_list', 'port': 3306, 'server': 'localhost'}
1.4 删除dictionary元素
另外要删除dictionary中某个键值对,可以使用del指令:
>>> del d['database']
>>> d
{'port': 3306, 'server': 'localhost'}
另外,dictionary的key是大小写敏感的,且key是不可改变的,它的类型可以是数字、字符串、tuple(稍后会介绍);同一个dictionary的value可以是任何任意数据类型,包括字符串,数字,对象,甚至是dictionary。

2、list介绍
list是Python中最常用的数据类型。它类似于Java中的数组,但是功能远比数组强大。
2.1 定义及访问list对象
可以按如下方式定义一个list对象:
>>> li = ['a','b',3]
>>> li
['a', 'b', 3]
>>> li[0]
'a'
另外list支持负的索引和切片:
>>> li[-1]
3
>>> li[1:2]
['b']
>>> li[0:3]
['a', 'b', 3]
>>> li[:]
['a', 'b', 3]
2.2 向list中增加元素
向list中增加元素可以使用如下方法:
>>> li.append('new')
>>> li
['a', 'b', 3, 'new']
>>> li.insert(2, 'new')
>>> li
['a', 'b', 'new', 3, 'new']
>>> li.extend(['one','two'])
>>> li
['a', 'b', 'new', 3, 'new', 'one', 'two']
其中append在列表尾部插入新元素,insert在指定位置上插入新元素,extend用于将参数中的list对象的元素连接到list对象中。
2.2 在list中搜索元素所在位置
>>> li.index('a')
0
同样,如果搜索的值不在list对象中,Python会抛异常。
>>> li.index('thi')
Traceback (most recent call last):
  File "<pyshell#42>", line 1, in <module>
    li.index('thi')
ValueError: 'thi' is not in list
另外,如果要测试某个值是否在list中是,使用in指令,如果存在返回True,否则返回False
>>> 'thi' in li
False
2.4 删除元素
可以使用remove或pop方法来删除list中的元素,其中remove会删除元素的首次出现,而pop会删除list中最后一个元素,并将删除的元素返回。
>>> li.remove('new')
>>> li
['a', 'b', 3, 'new', 'one', 'two']
>>> li.pop()
'two'
当pop一个空的list时,会产生异常:
>>> li.clear()
>>> li
[]
>>> li.pop()
Traceback (most recent call last):
  File "<pyshell#52>", line 1, in <module>
    li.pop()
IndexError: pop from empty list
2.5 list的运算符
list支持+、+=、*等运算符,其中+、+=用于连接两个list,作用相当于extend调用,其中+=等同于extend。而*表示重复多少遍,如:
>>> li = [1,2] * 3
>>> li
[1, 2, 1, 2, 1, 2]
3、Tuple介绍
Tuple是一个不可改变的list,一旦创建就不能以任何方式改变它,即创建后,Tuple对象是只读对象。tuple对象没有append、remove、extend等可以修改对象的方法。
>>> tu = (1,2,'c','d')
>>> tu[0]
1
>>> tu[-1]
'd'
>>> tu[-3:-1]
(2, 'c')
Tuple相对于list具有如下优点:

Tuple 比 list 操作速度快。如果您定义了一个值的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。
如果对不需要修改的数据进行 “写保护”, 可以使代码更安全。使用 tuple 而不是 list 如同拥有一个隐含的 
assert
 语句, 说明这一数据是常量。如果必须要改变这些值, 则需要执行 tuple 到 list
的转换 (需要使用一个特殊的函数)。
Tuples 可以在 dictionary 中被用做 key, 但是 list 不行。实际上, 事情要比这更复杂。Dictionary key 必须是不可变的。Tuple 本身是不可改变的, 但是如果您有一个 list 的 tuple, 那就认为是可变的了, 用做 dictionary key 就是不安全的。只有字符串, 整数或其它对 dictionary 安全的 tuple 才可以用作 dictionary key。
Tuples 可以用在字符串格式化中, 我们会很快看到。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: