Chinaunix首页 | 论坛 | 博客
  • 博客访问: 235727
  • 博文数量: 57
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 557
  • 用 户 组: 普通用户
  • 注册时间: 2015-10-01 18:05
文章分类

全部博文(57)

文章存档

2017年(57)

我的朋友

分类: Python/Ruby

2017-10-23 14:59:06

今天我们学习一下python的其他数据类型
列表 (list)
元组 (tuple)
字典 (dict)

Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-10-23 10:49
  5. # @file :test2.py

  6. alist = ['runoob', 786, 2.23, 'john', 70.2]
  7. tinylist = [123, 'john']

  8. print alist # 输出完整列表
  9. print alist[0] # 输出列表的第一个元素
  10. print alist[-2] # 输出列表的倒数第二个元素
  11. print alist[1:3] # 输出第二个至第三个的元素
  12. print alist[2:] # 输出从第三个开始至列表末尾的所有元素
  13. print alist[-3:-1] # 输出列表的倒数递三个数至倒数第一个数
  14. print alist[0:4:2]
  15. print tinylist * 2 # 输出列表两次
  16. print alist + tinylist # 打印组合的列表
以下是输出结果:
['runoob', 786, 2.23, 'john', 70.2]
runoob
john
[786, 2.23]
[2.23, 'john', 70.2]
[2.23, 'john']
['runoob', 2.23]
[123, 'john', 123, 'john']
['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

列表的常用方法:
append,insert,pop,remove,sort

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-10-23 11:05
  5. # @file :test3.py

  6. alist = ['hello', 786, 2.23, 'john', 786,70.2]
  7. print alist
  8. # append,在列表的最后追加
  9. alist.append(12345)
  10. print alist
  11. # insert,在列表的任意位置插入
  12. alist.insert(3,'abc')
  13. print alist
  14. # pop()方法,传递的是待删除元素的index:
  15. alist.pop(-2)
  16. print alist
  17. # remove()传递待删除元素,如果多个元素一样,默认删除第一个:
  18. alist.remove(786)
  19. print alist
  20. # sort,列表的排序
  21. alist1 = [2,4,1,0,5,8,6,9]
  22. alist1.sort()
  23. print alist1
  24. # reverse ,反序排列
  25. alist1.reverse()
  26. print alist1

以下是输入结果:
['hello', 786, 2.23, 'john', 786, 70.2]
['hello', 786, 2.23, 'john', 786, 70.2, 12345]
['hello', 786, 2.23, 'abc', 'john', 786, 70.2, 12345]
['hello', 786, 2.23, 'abc', 'john', 786, 12345]
['hello', 2.23, 'abc', 'john', 786, 12345]
[0, 1, 2, 4, 5, 6, 8, 9]
[9, 8, 6, 5, 4, 2, 1, 0]

Python元组

元组是另一个数据类型,类似于List(列表)。

元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

点击(此处)折叠或打开

  1. # 元组的定义

  2. atuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
  3. # 单个元素必须加 ‘,’
  4. btuple = (123,)
  5. print type(btuple)

  6. # 以下这样定义类型为字符串
  7. ctuple = (123)
  8. print type(ctuple)

  9. # 元组中是非法应用
  10. tuple[2] = 1000
  11. # 列表中是合法应用
  12. alist = ['runoob', 786 , 2.23, 'john', 70.2]
  13. list[2] = 1000
以下是输出结果:


['runoob', 786, 1000, 'john', 70.2]
# 元组的切片,组合

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-10-23 12:50
  5. # @file :test4.py
  6. atuple = ('good', 786, 2.23, 'john', 70.2)
  7. tinytuple = (123, 'john')

  8. print atuple # 输出完整元组
  9. print atuple[0] # 输出元组的第一个元素
  10. print atuple[1:3] # 输出第二个至第三个的元素
  11. print atuple[2:] # 输出从第三个开始至列表末尾的所有元素
  12. print tinytuple * 2 # 输出元组两次
  13. print atuple + tinytuple # 打印组合的元组


以下是输入结果:
('good', 786, 2.23, 'john', 70.2)
good
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('good', 786, 2.23, 'john', 70.2, 123, 'john')
元组的常用方法:

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-10-23 13:01
  5. # @file :test5.py

  6. #count 统计元组中某个元素的个数
  7. atulp = ('abc', '123a', 'abc',567, 'aa')
  8. print atulp.count('abc')
  9. # index 返回元素的下标,如果有多个相同元素,默认返回第一个
  10. print atulp.index('abc')
  11. print atulp.index('123a')
以下是执行结果:
2
0
1

Python 字典

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-10-23 13:27
  5. # @file :test6.py

  6. adict = {}
  7. adict['one'] = "This is one"
  8. adict[2] = "This is two"

  9. tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}
  10. print adict
  11. print adict['one'] # 输出键为'one' 的值
  12. print adict[2] # 输出键为 2 的值
  13. print tinydict # 输出完整的字典
  14. print tinydict.keys() # 输出所有键
  15. print tinydict.values() # 输出所有值
以下是输出结果:
{2: 'This is two', 'one': 'This is one'}
This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']
字典的方法:

点击(此处)折叠或打开

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author :Alvin.xie
  4. # @Time :2017-10-23 14:05
  5. # @file :test7.py

  6. #字典的创建
  7. info = {}
  8. info1 = dict()

  9. #字典的初始化(赋值)
  10. info = {'name':'tom'}
  11. info1 = dict(name = 'kate') #建议这样定义
  12. print info,info1

  13. #从列表元素中获取元素并用none作为键值
  14. info2 = {}.fromkeys(['name', 'blog'])
  15. print info2
  16. info3 = dict().fromkeys(['name', 'blog'])
  17. print info3
  18. # 指定字典的值
  19. info4 = dict().fromkeys(['name', 'blog'], 'linuxzen.com')
  20. print info4

  21. # 获取键的值
  22. info5 = {'name':'cold', 'blog':''}
  23. print info5['name']
  24. #print info5['nam'] #会抛出个KeyError异常

  25. # 但是如果获取不存在的键的值就会触发的一个KeyError异常,
  26. # 字典有一个get方法,可以使用字典get方法更加优雅的获取字典
  27. info6 = dict(name='spring', blog='')
  28. print info6.get('name')
  29. print info6.get('bog') # 不会抛出异常,返回的值为None
  30. print info6.get('aa',123) # 不存在返回,定义的默认值'123'

  31. # 字典的更新/添加
  32. # Python 字典可以使用键作为索引来访问/更新/添加值
  33. info6 = dict(name='summer', blog='')
  34. print info6

  35. # 同时Python字典的update方法也可以更新和添加字典
  36. info6.update({'name':'cold', 'blog':''})
  37. print info6

  38. # 字典的删除
  39. # 可以调用Python内置关键字del来删除一个键值
  40. del info6['name']
  41. print info6
  42. # 同时也可以使用字典的pop方法来取出一个键值,并删除
  43. print info5
  44. info5.pop('name')
  45. print info5

  46. # 其他操作
  47. # 获取所有key
  48. info4.keys()
  49. print info4
  50. # 获取key,value并循环
  51. for key, value in info4.items():
  52.     print key, ':', value

  53. # 我们常常需要为字典的某个键设定一个默认值,当这个键没有任何值的时候使用它。
  54. # setdefault()方法就可以帮助我们完成这个工作。
  55. # setdefault()是一个很好的快捷方式,可以确保一个键的存在。
  56. # setdefault()方法有两个参数,第一个参数就是要检查的键;
  57. # 第二个参数则是如果该键不存在的时候要设置的值。
  58. # 如果该键确实存在,则默认值不会起作用,并返回键的值。
  59. # 利用这个性质,可以写一个统计一段文字中各英文字母的出现次数的小程序:
  60. message= 'There are moments in life when you miss someone so much that you just want to pick them from your dreams and hug them for real! Dream what you want to dream;go where you want to go;be what you want to be,because you have only one life and one chance to do all the things you want to do.'
  61. count={}
  62. for character in message:
  63.     count.setdefault(character,0)
  64.     count[character] = count[character] + 1

  65. print count
以下是操作结果:
{'name': 'tom'} {'name': 'kate'}
{'blog': None, 'name': None}
{'blog': None, 'name': None}
{'blog': 'linuxzen.com', 'name': 'linuxzen.com'}
cold
spring
None
123
{'blog': '', 'name': 'summer'}
{'blog': '', 'name': 'cold'}
{'blog': ''}
{'blog': '', 'name': 'cold'}
{'blog': ''}
{'blog': 'linuxzen.com', 'name': 'linuxzen.com'}
blog : linuxzen.com
name : linuxzen.com
{'!': 1, ' ': 58, ',': 1, '.': 1, ';': 2, 'D': 1, 'T': 1, 'a': 19, 'c': 5, 'b': 3, 'e': 26, 'd': 6, 'g': 4, 'f': 4, 'i': 6, 'h': 14, 'k': 1, 'j': 1, 'm': 11, 'l': 6, 'o': 27, 'n': 16, 'p': 1, 's': 9, 'r': 10, 'u': 12, 't': 21, 'w': 9, 'v': 1, 'y': 9}

至次,python的数据类型讲解结束。









阅读(1393) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~