1.数据结构就是处理一些数据的结构。或者说,它们是用来存储一组相关数据的。在Python中有三种内建的数据结构—列表、元组和字典
2.列表
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。在Python中,每个项目之间用逗号分割。列表中的项目包括在方括号中。一旦创建了一个列表,可以添加、删除或是搜索列表中的项目。列表是可变的数据类型,即这种类型是可以被改变的。可以在列表中添加任何类型的项目。
定义列表:shoplist = ['apple', 'mango', 'carrot', 'banana']
列表长度:len(shoplist)
遍历列表:for item in shoplist: print item
增加项目:shoplist.append('rice')
列表排序:shoplist.sort()
删除项目:del shoplist[0]
3.元组
元组和列表十分类似,元组和字符串一样是不可变的。元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
定义元组:zoo = ('wolf', 'elephant', 'penguin')
元组长度:len(zoo)
添加元素:new_zoo = ('monkey', 'dolphin', zoo)
遍历元组:print new_zoo
访问元素:print 'Animals brought from old zoo are', new_zoo[2]
print 'Last animal brought from old zoo is', new_zoo[2][2]
打印元组:age = 22
name = 'Swaroop'
print '%s is %d years old' % (name, age)
结果:Swaroop is 22 years old(只有一个定制的时候可以省略圆括号)
含有0个项目的元组。一个空的元组由一对空的圆括号组成,如myempty = ()。
含有1个元素的元组必须在第一个(唯一一个)项目后跟一个逗号,这样Python才能区分元组和表达式中一个带圆括号的对象。例:一个包含项目2的元组,singleton = (2 , )。
4.字典
键值对的形式,没有顺序,如果想要一个特定的顺序,那么应该在使用前自己对它们排序。
字典是dict类的实例/对象。
定义字典:ab = {'Swaroop':'
[email protected]',
'Larry':'
[email protected]',
'Matsumoto':'
[email protected]',
'Spammer':'
[email protected]'
}
输出元素:print "Swaroop's address is %s" % ab['Swaroop']
增加元素:ab['Guido'] = '
[email protected]'
删除元素:del ab['Spammer']
字典长度:len(ab)
遍历字典:for name, address in ab.items():
print 'Contact %s at %s' % (name, address)
查找元素:if 'Guido' in ab: # OR ab.has_key('Guido')
print "\nGuido's address is %s" % ab['Guido']
5.序列
列表、元组和字符串都是序列,序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。对于列表、元组、字符串的方法相同,以;列表为例
shoplist = ['apple', 'mango', 'carrot', 'banana']
中括号里面的是位置\下标,从0开始
取特定的:print 'Item 0 is', shoplist[0]
print 'Item 1 is', shoplist[1]
print 'Item -1 is', shoplist[-1](倒数第一个)
取一部分:print 'Item 1 to 3 is', shoplist[1:3](不包括3)
print 'Item 2 to end is', shoplist[2:](从第三个到结束)
print 'Item 1 to -1 is', shoplist[1:-1](第二个到倒数第二个)
print 'Item start to end is', shoplist[:](全部)
6.参考
当创建一个对象并给它赋一个变量的时候,这个变量仅仅参考那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。
例如:
mylist = shoplist(两个名称参考同一个对象,指向同一片内存)
mylist = shoplist[:](两个对象)
7.字符串扩展
程序中使用的字符串都是str类的对象
定义:name='Swaroop'
判断开始:if name.startswith('Swa'):
print 'Yes, the string starts with "Swa"'
判断存在:if 'a' in name:
print 'Yes, it contains the string "a"'
if name.find('war')!=-1:
print 'Yes, it contains the string "war"'(找不到子字符串返回-1)
自动连接:delimiter='_*_ '
mylist=['Brazil','Russia','India','China']
print delimiter.join(mylist)
输出:Brazil_*_Russia_*_India_*_China