第二章 数据类型(2)

第二章 数据类型(2)

1)tuple是一旦建立便不可修改的列表,建立方法和列表一样,只不过list用方括号,tuple用圆括号:
>>>a_tuple = (‘a’, ‘b’, ‘mpligrim’, ‘example’)
(2)除了修改操作,tuple和list一样。
(3)tuple的优点是比list速度更快,可用于迭代。tuple也可以做为dictionary的key,但list不行,因为dictionary的key要求是不可修改的值。
(4)list和tuple可以互相转换,使用tuple(a_list)可以将list转换成tuple;list(a_tuple)可以将tuple转换成list。这两个方法都不会修改原有的值,只是使用原有的值建立新的对象。
(5)建立空tuple只要一对圆括号就可以,但建立只有一个值的tuple须要在唯一的值后加上一个逗号,如果不加逗号虽然不会出错但并不能建立tuple。
a_tuple=()#空tuple
a_tuple=(‘only one’,)#只有一个值的tuple
(6)python支持一次向多个变量赋值,如:
>>>v=(‘a’, 2, True)
>>>(x, y, z) = v #(x, y, z)是一个tuple,用(‘a’, 2, True)三个值来初始化(x, y, z)
>>>(x, y, z) = range(3) #范围从0~2
>>>x, y, z = rang(3) #同样范围从0~2,不同的是这里有三个变量可以改变值,而上面的例子可以理解成用0~2初始化了三个变量,又用三个变量初始化了一个tuple,tuple当然是不能修改的,但变量是可以修改的。
使用这个方法可以用于在函数中返回多个值。
(7)set中存放的值是无序的、唯一的、不可修改的。两个set可以进行并、交、差集操作。
(8)set的定义使用花括号,每个值用逗号分隔。可以使用set()函数通过一个list来建立一个set。
(9)不能使用一对花括号建立空set,因为那样会建立一个空的dictionary。
(10)向已存在的set中添加值,有两个方法(set中不能有重复的值,如果有重复的值,不会引发错误,只会默默忽略):
1)add()添加单个值
2)update()添加多个集,集与集之间用逗号隔开。
(11)从已存在的set中删除值,有四个方法:
1)discard()#从set中删除一个值,如果值不存在的话,什么也不做。
2)remove()#从set中删除一个值,如果值不存在的话,引发一个KeyError异常。
3)pop()是随机删除一个值,如果set为空,引发一个KeyError异常。
4)clear()清空set中所有值,等于a_set=set()
(12)使用in操作符在set中搜索。
(13)a_set.union(b_set)#返回一个新集,其中包含了两个集中所有的值(无重复)。
(14)a_set.intersection(b_set)#返回一个新集,其中包含了两个集中都存在的值。
(15)a_set.difference(b_set)#返回一个新集,其中包含的值在A集中但不在B集中。
(16)a_set.symmetric_difference(b_set)#返回一个新集,该集中不包含A和B的交集。

(17)a_set.issubset(b_set)#A集是否是B集的子集,返回布尔值。

(18)a_set.issuperset(b_set)#A集是否是B集的超集,返回布尔值

(19)在“布尔上下文”中任何空集为False,集合中有任何值,无论何值,都是True。

(20)dictionary是一个无序的“键-值”对,当你添加一个key到dictionary的同时必须要添加一个对应的值(通过键来查找值,这个值之后可以修改,但键不能改),建立方法和SET的方法差不多,例如:
a_dict = {‘server’:’db.diveintopython3.org’, ‘database’: ‘mysql’}
>>>a_dict[server]
‘db.diveintopython3.org’

(21)dictionary没有任何预置的大小限制,可以在任何时间对dictionary进行修改,如:
a_dict[‘server’]=’5×44.cn’#修改已存在的值
a_dict[‘user’]=’mark’#添加新值

(22)dictionary中不能有重复的键。

(23)dictionary中的键是大小写敏感的。

(24)dictionary中的值可以是任何类型的对象,同一个“字典”中的值,可以由不同类型的值组成;键的要求要比值高一些,但只要是不可修改的值就可以,同样,同一“字典”中的值不用同一类型。

(25)dictionary可以使用len()函数测试“字典”中有几个元素,同样可以使用in来测试某个键是否在字典中。

(26)dictionary中有任何值,它的布尔上下文均为true。

(27)在python中None是一个特殊常量,None不同于False,也不是0,更不是空字符串。None和其它任何非None值一直返回False。None只是一个空值,它有自己的数据类型——NoneType。可以分配None到任何变量,但是不能创建NoneType对象,所有类型变量的None值是相等的。

(28)在“布尔上下文”中None是False,而not None是True.

发表评论