@wenshizhang
2016-08-12T15:16:20.000000Z
字数 1715
阅读 417
suse实习
python
这里说的数据结构并不是在C中常见的int,long等等,在python中,基本类型和C中并没有什么太大的不同,这里暂且不提。本文要说的就是C中没有的字符串、列表、元组、字典、序列等等。
和shell类似,python对字符串也分为有单引号和双引号,而且还多了一个三引号。
元组就是把一些数据组合起来,和列表非常相似。不同的是,元组中的数据是不可以 改变的。定义元组:
zoo = ('wolf','dog') #定义多个元素的元组
zoo=() #定义一个空元组
zoo=('wolf',) #定义只有一个元素的元组
元组最常见的就是用在打印数据中:
name = 'shiwen'
number = 001
print '%s 's number is %s' %(name,number)
字典就是 key/value组织起来的数据,key必须是唯一的,定义一个字典的方式是(假设定义一个个人信息):
dict = {
name : shiwen, #除了最后一个键值对,其余的后面都要有逗号
address : China,
number : 001
}
如上定义一个存有一些个人信息的名册,如果要访问字典中的某一个值:print 'name is ',dict['name']
,如果要便利访问字典信息(通过元组方式,前面说元组最常用的就是print功能)
for name,info in dict.items(): #items()是字典的定义函数,详情参见help(dict)
print '%s information:%s' %s(name,info)
列表、元组和字符串都属于序列,序列常见的操作是索引操作和切片操作。索引是获取序列中一个特定的项目,切片操作是获取序列的一个子序列。以字符串为例,显示索引操作和切片操作。
name = 'shiwen'
print 'character 3 is ',name[3] #索引操作
#切片操作
name = 'shiwen'
print 'characters 1 to end are',name[1:] #从特定位置切到尾
print 'characters 1 to 3 are',name[1:3] #从特定位置切到特定位置
print 'characters start to end are',name[:] #从头到尾
切片操作数字可以不填,但是冒号是必须要有的。
name = 'shiwen'
slice = name[::-1] #做name变量的全切片,步长是-1
print slice
#得到的结果是newihs,原序列的逆序列
slice = name[::2]
#得到的slice是sie
参考就是类似于指针,如果定义了一个a变量,并且把另外一个b变量值赋给a变量。实际上a变量仅仅是参考了b变量的值,这两个变量的变量名指向同一块内存。想要 获得一个序列的拷贝,可以通过切片操作来达到目的。例:
info = ['shiwen','001','female','24']
m = info
del info[0]
#下面两行输出结果是相同的
print 'm is ',m
print 'info is ',info
m = info[:] #获得列表info的全切片
del info[0]
#下面两行输出是不一样的
print 'm is ',m
print 'info is ',info