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'#增加,字典类型是没有顺序的
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 = ["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']
>>>
>>> [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
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。