[关闭]
@wenshizhang 2016-08-12T15:16:20.000000Z 字数 1715 阅读 417

可爱的python——数据结构.md

suse实习 python


这里说的数据结构并不是在C中常见的int,long等等,在python中,基本类型和C中并没有什么太大的不同,这里暂且不提。本文要说的就是C中没有的字符串、列表、元组、字典、序列等等。

字符串

单引号、双引号和三引号

和shell类似,python对字符串也分为有单引号和双引号,而且还多了一个三引号。

常用的字符串方法

列表

元组

元组就是把一些数据组合起来,和列表非常相似。不同的是,元组中的数据是不可以 改变的。定义元组:

  1. zoo = ('wolf','dog')    #定义多个元素的元组
  2. zoo=()          #定义一个空元组
  3. zoo=('wolf',)       #定义只有一个元素的元组

元组最常见的就是用在打印数据中:

  1. name = 'shiwen'
  2. number = 001
  3. print '%s 's number is %s' %(name,number)

字典

字典就是 key/value组织起来的数据,key必须是唯一的,定义一个字典的方式是(假设定义一个个人信息):

  1. dict = {
  2.   name : shiwen,      #除了最后一个键值对,其余的后面都要有逗号
  3.   address : China,
  4.   number : 001
  5. }

如上定义一个存有一些个人信息的名册,如果要访问字典中的某一个值:print 'name is ',dict['name'],如果要便利访问字典信息(通过元组方式,前面说元组最常用的就是print功能)

  1. for name,info in dict.items():      #items()是字典的定义函数,详情参见help(dict)
  2.  print '%s information:%s' %s(name,info)

序列

列表、元组和字符串都属于序列,序列常见的操作是索引操作和切片操作。索引是获取序列中一个特定的项目,切片操作是获取序列的一个子序列。以字符串为例,显示索引操作和切片操作。

  1. name = 'shiwen'
  2. print 'character 3 is ',name[3]     #索引操作
  1. #切片操作
  2. name = 'shiwen'
  3. print 'characters 1 to end are',name[1:]     #从特定位置切到尾
  4. print 'characters 1 to 3 are',name[1:3]     #从特定位置切到特定位置
  5. print 'characters start to end are',name[:]   #从头到尾  

切片操作数字可以不填,但是冒号是必须要有的。

  1. name = 'shiwen'
  2. slice = name[::-1] #做name变量的全切片,步长是-1
  3. print slice
  4. #得到的结果是newihs,原序列的逆序列
  5. slice = name[::2]
  6. #得到的slice是sie

参考

参考就是类似于指针,如果定义了一个a变量,并且把另外一个b变量值赋给a变量。实际上a变量仅仅是参考了b变量的值,这两个变量的变量名指向同一块内存。想要 获得一个序列的拷贝,可以通过切片操作来达到目的。例:

  1. info = ['shiwen','001','female','24']
  2. m = info
  3. del info[0]
  4. #下面两行输出结果是相同的
  5. print 'm is ',m
  6. print 'info is ',info
  7. m = info[:]    #获得列表info的全切片
  8. del info[0]
  9. #下面两行输出是不一样的
  10. print 'm is ',m
  11. print 'info is ',info
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注