元组、集合、字典
tuple:元组(即常量数组),一旦生成,不可改变
tuple = ('a','b','c','d','e')
可以用list的[],操作符提取元素。就是直接修改元素。
元组可以和列表互相转换
>>> a
('a', 'b', 'c')
>>> list(a) ---------->元组转换成列表
['a', 'b', 'c']
>>> a = list(a)
>>> a
['a', 'b', 'c']
>>> tuple(a) ----------->列表转换成元组
('a', 'b', 'c')
>>>
创建set的两种方式
1,
c = {1,2,3,4,5}
2,
a = set([1,2,3,4])
b = set ((3,4,5,6))
a & b #求交集 a.intersection(b)
a | b #求并集 a.union(b)
a - b #求差集 a.difference(b)
a ^ b #求补集 a.symmetric_difference(b)
a.issubset(b) #a是否是b的子集
a.issuperset(b) #a是否包含于b
举例:
>>> x = {1,2,3,4}
>>> y = {2,3,4,5}
>>> type(x)
>>> x - y
set([1])
>>> x ^ y
set([1, 5])
>>> x & y
set([2, 3, 4])
>>> x | y
set([1, 2, 3, 4, 5])
dict = {‘a’:1,'b':2,'c':3}
dict.clear() #清空字典
dict.get(key,0) #同dict[key],多了,多了没有则返回缺省值,0。[],没有则抛异常
dict.has_key(key) #有该键返回TRUE,否则返回FALSE
dict.items() #将所有的字典以列表的方式返回,这些列表中的每一项都来自(键,值),
但是项在返回时并没有特殊的顺序。
dict.keys() #返回字典的列表
dict.values() #以列表的形式返回字典中的值,返回的值的列表可包含重复元素
dict.pop(key) #删除指定的key
dict.popitem() #得到一个pair,并从字典中删除它,注意随机删除,已空则抛异常
dict.setdefault(key,v) #设置默认key的值,如果字典中有该key,则不改变value,如果没有则默认为v
dict.update() #增加合并字典
dictionary的复制
dict.copy() #拷贝字典
dict1 = dict #别名(注意:此时修改任意字典中的任意值,另一个字典中的值也会跟着改变)
dict2 = dict1.copy() #克隆(浅copy,修改一个字典中值另一个不会改变,但是如果字典中包含有list等,
将list中的值修改,则另外一个字典也会改变,所有叫浅copy。深copy有专门的模块,copy.deepcopy())
深拷贝和浅拷贝的区别?
1,copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部子对象。
2,copy.deepaopy 深拷贝 拷贝对象及其子对象。
举例:
-
#_*_ coding:utf-8 _*_
-
import copy
-
a = [1,2,3,['a','b']]
-
b = a
-
c = copy.copy(a)
-
d = copy.deepcopy(a)
-
-
a.append(5)
-
a[3].append('c')
-
-
print (a)
-
print (b)
-
print (c)
-
print (d)
执行结果如下:
[1, 2, 3, ['a', 'b', 'c'], 5]
[1, 2, 3, ['a', 'b', 'c'], 5]
[1, 2, 3, ['a', 'b', 'c']]
[1, 2, 3, ['a', 'b']]
1,遍历字典的方法
1).
dict = {'a':1,'b':2,'c':3}
for k,v in dict.items(): ------->效率低,因为先转化为列表,再进行遍历的
print k,v
2)dict = {'a':1,'b':2,'c':3}
for i in dict: -------->效率高
print i,dict[i]
2,举例:dict.update() #增加合并字典
>>> d
{'a': 1, 'c': 4, 'e': 5, 'd': 6, 'g': 2, 'f': 7}
>>> b
{'a': 'job', 'b': 'hello'}
>>> d.update(b) ----------------------------->字典的key具有唯一性,所以是这种结果
>>> d
{'a': 'job', 'c': 4, 'b': 'hello', 'e': 5, 'd': 6, 'g': 2, 'f': 7}
>>>
对比list,tuple,dict,set
|------------------------------------------------------------------------
|list 是有序的集合,可以随时添加删除其中的元素,注意是有顺序的。
缺点:查找和插入的时间,随着元素的增加而增加
优点:占用空间小,浪费的内存少,通过下标来查询。
|-------------------------------------------------------------------------------------
|tuple “元组”,和list非常类似,但是一旦创建完毕,就不能修改,单个元素的tuple
| 要加逗号
|-------------------------------------------------------------------------------------
|dict “字典”,建立一组key和一组value的映射关系,key不能重复且不可变。
| dict的优点:1,查找速度快,10万个元素,查找的速度都一样 2,默认是没有顺序
| dic的缺点:1,浪费内存
| dict是可变的,我们可以随时往里面添加新的key-value
|------------------------------------------------------------------------------
|set 集合,持有一系列元素,这一点和list很像,但是set的元素没有重复,而且是无序的,
| 特点:1,无序, 2,元素不重复
功能:1,关系测试, 2,去重
|-------------------------------------------------------------------------------------
以上是给予python2
阅读(1307) | 评论(0) | 转发(0) |