python笔记(二) - 数据类型

Python 既是 动态类型定义语言 (因为它不使用显示数据类型声明) , 又是 强类型定义语言 (因为一旦一个变量具有一个数据类型, 它实际上就一直是这个类型了) 。

1.Dictionary类型

#coding=utf-8
userdict = {'1':'user1','2':'user2'}
print userdict#result:{'1': 'user1', '2': 'user2'}
print userdict['1']#result:user1
print userdict['3']#发生异常KeyError:'3'
userdict['1']='user1_1'#修改键为1的值
userdict['3']='user3'#增加,字典类型是没有顺序的

del userdict['3']#删除 

userdict.clear()#清空 

2.List

#coding=utf-8
li = ["a""b""c""d""e"
print li[0] #result:a 从前数(0开始计数)
print li[-1#result:e 从后开始数(-1开始计数)
print li[1:3#result:['b', 'c']分片
print li[1:-1]#result :['b', 'c', 'd']
print li[1:-4]#result[]
print li[1:-5]#result[]
print li[2:]#result:['c', 'd', 'e']
print li[:2]#result:['a', 'b']
print li[:]#result:['a', 'b', 'c', 'd', 'e']相当于复制一个字符串,深复制
print li[:-2]#result:['a', 'b', 'c']
li.append(1)#result:['a', 'b', 'c', 'd', 'e', 1]
li.insert(2,2)#result:['a', 'b', 2, 'c', 'd', 'e', 1]
li.extend([4,5])#['a', 'b', 2, 'c', 'd', 'e', 1, 4, 5]
li.append([6,7])#['a', 'b', 2, 'c', 'd', 'e', 1, 4, 5, [6, 7]]
li.extend(6)#异常TypeError
print len(li)#元素个数
print li.index('a')#搜索
print li.index('aa')#异常ValueError
print 'a' in li #True
print 'aa' in li #False
print li
li.remove(
1)#删除元素1
li.remove(0)#异常ValueError
print li.pop()#弹出最后一个元素,并返回弹出的元素的值
li+=['q']*2
print li

 

>>> li = ["ai""break""con""display""enable"]
>>> [elem for elem in li if len(elem)>2]
[
'break''con''display''enable']
>>> 

3.Tuple

Tuple 是不可变 list。 一旦创建了一个 tuple 就不能以任何方式改变它

#coding=utf-8
li = ("a""b""c""d""e"
print li[0] #result:a 从前数(0开始计数)
print li[-1#result:e 从后开始数(-1开始计数)
'''
注意当分割一个 list 时, 会得到一个新的 list
当分割一个 tuple 时, 会得到一个新的 tuple
'''
print li[1:3#result:['b', 'c']分片
print li[1:-1]#result :['b', 'c', 'd']
print li[1:-4]#result[]
print li[1:-5]#result[]
print li[2:]#result:['c', 'd', 'e']
print li[:2]#result:['a', 'b']
print li[:]#result:['a', 'b', 'c', 'd', 'e']相当于复制一个字符串,深复制
print li[:-2]#result:['a', 'b', 'c']
#
li.append(1)#AttributeError
#
li.insert(2,2)#AttributeError
#
li.extend([4,5])#AttributeError
print len(li)#元素个数
#
print li.index('a')#AttributeError
print 'a' in li #True
print 'aa' in li #False
print li
#li.remove(1)#AttributeError

 tuple 有什么好处呢?Tuple 比 list 操作速度快。如果您定义了一个值的常量集, 并且唯一要用它做的是不断地遍历它, 请使用 tuple 代替 list。

 

posted @ 2009-04-15 11:27  ________囧丶殇  阅读(236)  评论(0编辑  收藏  举报