Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2859713
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Python/Ruby

2012-02-29 10:11:50

Python的数据访问模型,序列(字符串,列表,元组)

Python的数据访问模型:直接存取 ,序列 ,映射

对非容器类都可以直接存取,所有的数值类型归为此类。

序列类型是指容器内的元素从0开始的索引顺序访问,一次可以访问一个或者多个元素。 字符串列表元组归到此类

映射类型和序列类型不同之处,它使用的索引和顺序的数字偏移量不同,它的元素无序存放,通过唯一的key来访问。 字典就是这种类型。


序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。

  1. '''
  2. Created on 2012-2-29
  3. @author: king
  4. '''

  5. shoplist = ['apple0', 'mango1', 'carrot2', 'banana3',4]

  6. # Indexing or 'Subscription' operation
  7. print 'Item 0 is', shoplist[0]
  8. print 'Item -1 is', shoplist[-1]
  9. print 'Item -2 is', shoplist[-2]

  10. # Slicing on a list
  11. print 'Item 1 to 3 is', shoplist[1:3]
  12. print 'Item 2 to end is', shoplist[2:]
  13. print 'Item 1 to -1 is', shoplist[1:-1]
  14. print 'Item start to end is', shoplist[:]

  15. # Slicing on a string
  16. name = 'swaroop'
  17. print 'characters 1 to 3 is', name[1:3]
  18. print 'characters 2 to end is', name[2:]
  19. print 'characters 1 to -1 is', name[1:-1]
  20. print 'characters start to end is', name[:]

    输出:
  21. Item 0 is apple0
  22. Item -1 is 4
  23. Item -2 is banana3
  24. Item 1 to 3 is ['mango1', 'carrot2']
  25. Item 2 to end is ['carrot2', 'banana3', 4]
  26. Item 1 to -1 is ['mango1', 'carrot2', 'banana3']
  27. Item start to end is ['apple0', 'mango1', 'carrot2', 'banana3', 4]
  28. characters 1 to 3 is wa
  29. characters 2 to end is aroop
  30. characters 1 to -1 is waroo
  31. characters start to end is swaroop

  • Python从0开始计数。因此,shoplist[0]抓取第一个项目,shoplist[3]抓取shoplist序列中的第四个元素。索引同样可以是负数,在那样的情况下,位置是从序列尾开始计算的。因此,shoplist[-1]表示序列的最后一个元素而shoplist[-2]抓取序列的倒数第二个项目。


  • 切片操作符是序列名后跟一个方括号,方括号中有一对可选的数字,并用冒号分割,数是可选的,而冒号是必须的。


  • 切片操作符中的第一个数(冒号之前)表示切片开始的位置,第二个数(冒号之后)表示切片到哪里结束。如果不指定第一个数,Python就从序列首开始。如果没有指定第二个数,则Python会停止在序列尾。注意,返回的序列从开始位置 开始 ,刚好在 结束 位置之前结束。即开始位置是包含在序列切片中的,而结束位置被排斥在切片外。


  • 这样,shoplist[1:3]返回从位置1开始,包括位置2,但是停止在位置3的一个序列切片,因此返回一个含有两个项目的切片。类似地,shoplist[:]返回整个序列的拷贝。


  • 你可以用负数做切片。负数用在从序列尾开始计算的位置。例如,shoplist[:-1]会返回除了最后一个项目外包含所有项目的序列切片。




1、列表也是序列式的数据类型,可以通过下标或者切片操作来访问一个或者多个元素。列表和字符串不同的地方在,字符串只能由字符组成,而且不是可变的(不能单独改变它的某个值),而列表则是保存任何数目的Python对象的灵活的容器。


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