码迷,mamicode.com
首页 > 编程语言 > 详细

第二章 python中重要的数据结构(下)

时间:2015-10-03 19:25:25      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

二、元组(tuple):不可变序列 

跟list一样,也是一种序列,唯一不同的是,元组元素不能被修改,通常用(, ,)表示元组,也可以不加括号。

 1 #创建元组
 2 >>> 1,2,3
 3 (1, 2, 3)
 4 >>> t = (1,2,3)
 5 >>> t
 6 (1, 2, 3)
 7 #创建空元组
 8 >>> t1 = () 
 9 >>> t1
10 ()
11 #创建只有一个元素的元组,这里注意必须带上逗号
12 >>> t2 = (1,)
13 >>> t2
14 (1,)
15 #也可以用tuple()函数创建元组
16 >>> b = tuple(abc)
17 >>> b
18 (a, b, c)

【访问】:跟list一样,支持索引和分片访问。

【区别】:元组和列表的区别及适用的地方?

  1、元组可以充当字典中的键,列表则不可

  2、元组不像list那样有内建函数。

 

三、集合(set) 

【定义】:集合是一组无序的不重复的值

 1 >>> basket = {apple, orange, apple, pear, orange, banana}
 2 >>> print(basket)                      # show that duplicates have been removed
 3 {orange, banana, pear, apple}
 4 >>> orange in basket                 # fast membership testing
 5 True
 6 >>> crabgrass in basket
 7 False
 8 
 9 >>> # Demonstrate set operations on unique letters from two words
10 ...
11 >>> a = set(abracadabra)
12 >>> b = set(alacazam)
13 >>> a                                  # unique letters in a
14 {a, r, b, c, d}
15 >>> a - b                              # letters in a but not in b
16 {r, d, b}
17 >>> a | b                              # letters in either a or b
18 {a, c, r, d, b, m, z, l}
19 >>> a & b                              # letters in both a and b
20 {a, c}
21 >>> a ^ b                              # letters in a or b but not both
22 {r, d, b, m, z, l}

四、字典(Dictionaries) 

【定义】字典是一组键值对,其中key可以是数字、字符串、元组。

【创建】用大括号表示,key-value结构,键值之间用冒号隔开,不同的键值对之间通过逗号分隔,如下:

1 >>> dict = {Tome:1341,Helen:2030}
2 >>> dict
3 {Tome: 1341, Helen: 2030}
4 >>> dict1 = {}
5 >>> dict1
6 {}

【基本操作】

  len(dict)返回字典键值对数量

  dict[k]返回key为k的值

  dict[k]改变key为k的值

  del dict[k]删除键为k的项

  k in dict检查dict中是否含有键为k的项

  1 #!/usr/python
  2 
  3 people = {
  4     Alice:{
  5         phone:2341,
  6         addr:Foo drive 23
  7     },
  8 
  9     Beth:{
 10         phone:2003,
 11         addr:Bar street 32
 12     },
 13 
 14     Cecil:{
 15         phone:3212,
 16         addr:Baz avenue 90
 17     }
 18 
 19 }
 20 
 21 labels = {
 22     phone:phone number,
 23     addr:address
 24 }
 25 
 26 name = raw_input(Name: )
 27 request = raw_input(Phone number(p) or address(a)? )
 28 if request == p:
 29     key = phone
 30 if request == a:
 31     key = addr
 32 
 33 if name in people:
 34     print "%s‘s %s is %s." % (name,labels[key],people[name][key])

运行结果:

1 [root@darren python]# python dict.py 
2 Name: Alice
3 Phone number(p) or address(a)? p
4 Alices phone number is 2341.

【方法】

 1、clear()方法:清空字典所有项,原地操作。

 1 >>> x = {}
 2 >>> y = x #并不是简单的赋值,这里可以理解为x,y共同指向一个字典
 3 >>> x[key]=value
 4 >>> x
 5 {key: value}
 6 >>> y
 7 {key: value}
 8 >>> x = {}
 9 >>> x
10 {}
11 >>> y
12 {key: value}
 1 >>> x = {}
 2 >>> y = x
 3 >>> x[key] = value
 4 >>> x
 5 {key: value}
 6 >>> y
 7 {key: value}
 8 >>> x.clear() #注意clear方法清除原地
 9 >>> x
10 {}
11 >>> y
12 {}

2、copy()方法:返回一个相同值得新字典,浅复制

1 >>> a = {username:admin,machines:[foo,bar]}
2 >>> b = a.copy()
3 >>> b[username]=lsls
4 >>> b[machines].remove(bar)
5 >>> a          #替换不能改变值,但是修改可以改变原字典值
6 {username: admin, machines: [foo]} 

可以通过深复制,让原字典保持不变:

1 >>> from copy import deepcopy
2 >>> d = {}
3 >>> d[name] = [aa,bb]
4 >>> c = d.copy()
5 >>> dc = deepcopy(d)
6 >>> dc[name].append(cc)
7 >>> d
8 {name: [aa, bb]}

3、get(key)方法:通过key访问字典值,如果字典不存在key,不会报错,返回none

4、keys()和iterkeys()方法:keys方法将字典中的键以列表形式返回,而iterkeys则返回针对键的迭代器

5、pop(key)方法:删除指定key的键值项

6、popitem()方法:随机删除一个键值项

7、values()和itervalues()方法:values方法将字典中的键以列表形式返回,而itervalues则返回针对键的迭代器

8、update(item)方法:利用一个字典项更新另一个字典

1 >>> d = {title:python study,url:www.python.com}
2 >>> x = {title:.net study} 
3 >>> d.update(x)
4 >>> d
5 {url: www.python.com, title: .net study}

至此,python中常用的数据结构就学习的差不多了。

   

第二章 python中重要的数据结构(下)

标签:

原文地址:http://www.cnblogs.com/mysql-dba/p/4853686.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!