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

python

二、元组(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 Alice's 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中重要的数据结构(下) 的全部内容, 来源链接: utcz.com/z/389161.html

回到顶部