输出:
5 o H 5 123 1
二、映射(字典)
映射中的每个元素都有一个名字,如你所知,这个名字专业的名称叫键。字典(也叫散列表)是Python中唯一内建的映射类型。
1、键类型
字典的键可以是数字、字符串或者是元组,键必须唯一。在Python中,数字、字符串和元组都被设计成不可变类型,而常见的列表以及集合(set)都是可变的,所以列表和集合不能作为字典的键。键可以为任何不可变类型,这正是Python中的字典最强大的地方。
list1=["hello,world"]
set1=set([123])
d={}
d[1]=1
print d
d[list1]="Hello world."
d[set1]=123
print d
输出:
{1: 1}
Traceback (most recent call last):
File "F:Pythontest.py", line 6, in <module>
d[list1]="Hello world."
TypeError: unhashable type: 'list'
2、自动添加
即使键在字典中并不存在,也可以为它分配一个值,这样字典就会建立新的项。
3、成员资格
表达式item in d(d为字典)查找的是键(containskey),而不是值(containsvalue)。
Python字典强大之处还包括内置了很多常用操作方法,可参考官方文档,这里不再列举。
思考:根据我们使用强类型语言的经验,比如C#和Java,我们肯定会问Python中的字典是线程安全的吗?
三、集合
集合(Set)在Python 2.3引入,通常使用较新版Python可直接创建,如下所示:
strs=set(['jeff','wong','cnblogs']) nums=set(range(10))
看上去,集合就是由序列(或者其他可迭代的对象)构建的。集合的几个重要特点和方法如下:
1、副本是被忽略的
集合主要用于检查成员资格,因此副本是被忽略的,如下示例所示,输出的集合内容是一样的。
set1=set([0,1,2,3,0,1,2,3,4,5]) print set1 set2=set([0,1,2,3,4,5]) print set2
输出如下:
set([0, 1, 2, 3, 4, 5]) set([0, 1, 2, 3, 4, 5])
2、集合元素的顺序是随意的
这一点和字典非常像,可以简单理解集合为没有value的字典。
strs=set(['jeff','wong','cnblogs']) print strs
输出如下:
set(['wong', 'cnblogs', 'jeff'])
3、集合常用方法
a、交集union
set1=set([1,2,3]) set2=set([2,3,4]) set3=set1.union(set2) print set1 print set2 print set3
输出:
set([1, 2, 3]) set([2, 3, 4]) set([1, 2, 3, 4])
union操作返回两个集合的并集,不改变原有集合。使用按位与(OR)运算符“|”可以得到一样的结果:
set1=set([1,2,3]) set2=set([2,3,4]) set3=set1|set2 print set1 print set2 print set3










