元组(tuple):
元组常用小括号表示,即:(),元素加逗号,是元组的标识。
#定义一个元组
#tuple = 'a',
tuple = ('a','b','c','d','e','f','g')
#常规来说,定义了一个元组之后就无法再添加或修改元组的元素,但对元组切片可以添加会修改元组的元素。
print tuple[1:5]
tuple = tuple[:2]+('h')+temp[2:]
print(tuple)
#使用for循环进行遍历元组
for each in tuple:
print each
#通过range()函数和for循环获取元组内元素的序号
for index in range(len(tuple)):
print tuple[index]
---元组总结:
1.特性:不可更改的数据序列。【理解:一旦创建元组,则这个元组就不能被修改,即不能对元组进行更新、增加、删除操作】
2.创建:一对圆括号“()”和其包含的元素(若没有元素,则为空元组)。
创建一般元组:即一维元组。如:tempTuple = ("one","two","three",4,5,6)。
创建嵌套元组:元组中还可以包含元组,即嵌套元组或二维(多维)元组。如:mulTuple = (("you","are","a","dog"),"you","too")。
注:若想创建包含一个元素的元组,则必须在该元素后面加逗号“,”,否则创建的不是一个元组,而是一个字符串。
如:aTuple =("one",),aString = ("one")。type(aTuple) -> "tuple",type(aString) ->"string"。
3.访问:元组名[index],index为元素在元组中的索引,索引为整数,从0开始。注意:index不能越界,否则会报错。
访问一般元组:tempTuple[0] -> "one",tempTuple[3] -> 4。
访问嵌套元组:mulTuple[0][1] ->"are"。
注:可以使用负数作为索引来访问元组。-1代表最后一个元素,-2代表倒数第二个,以此类推。如:tempTuple[-1] ->"too"。
可用for循环遍历元组。如:forelementintempTuple: print(elment)。
4.求长:len(元组名)。如len(tempTuple) ->6。(长度也即元组中元素的个数)。
5.打印:print(元组名),可打印元组中的所有元素。
6.类型:type(元组名) ->"tuple"。
7.删除:del 元组名,删除元组,当访问被删除的元组时会报错,提示:元组未定义。(其他类型也可以用此方法)
列表(list):
列表常用方括号表示,即:[];
创建一个列表,只要把用逗号分隔的不同的数据项使用方括号括起来即可。
例如:
1list1 = ['a','b','c',1,3,5]
2list2 = [1,2,3,4,5,6]
3list3 = ["abc","bcd","cde"]
遍历列表:(len(each):表示每个迭代变量的长度,each:表示每个迭代的变量)
1list1 = ['a','b','c',1,3,5]
2foreachinlist1
3print(each,len(each))
列表中常用的函数:
cmp(list1,list2):比较两个列表的元素
len(list):返回列表元素个数
max(list):返回列表元素最大值
min(list):返回列表元素最小值
list(tuple):将元组转换为列表
列表中常用的9个方法:
list.append(obj):在列表的末尾添加新的对象
list.count(obj):统计某个元素在列表中出现的次数
list.extend(list):在列表末尾添加包含多个值的另一个序列,有扩展列表的作用
list.insert(index,obj):将对象插入列表中的第index元素之前
list.pop(obj=list[-1]):默认移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj):移除列表中某个值
list.reverse():将列表中的元素反向排列
list.sort(function()):将列表进行排序
---列表总结:
1.特性:可更改的数据数列。(区别于元组,可动态增加,删除,更新)
2.创建:一对方括号“[]”和其包含的元素,单个元素可以不加逗号,同元组一样,可以创建嵌套列表。如:tempList = ["one","two","three"]。
3.基本操作及方法:
(1)访问、遍历、求长、打印、类型等操作同元组
(2)更新:给列表中的元素重新赋值,不可给列表中不存在的元素赋值。如:tempList[2] = 3 ->tempList = ["one","two",3],tempList[3] = "four" ->报错!!!
(3)删除:删除元素后(若不是最后一个),右边的元素会左移。
1)del:删除指定元素。如:del tempList[0] ->tempList = ["two","three"]
2)pop:删除指定位置的元素并返回被删除的元素,默认删除最后一个。如:element = tempList.pop(1) ->element = two,tempList = ["one","three"]。
(4)增加(插入):
1)append:向列表末尾添加一个元素,参数不能为空,否则报错。如:tempList.append("four") ->tempList = ["one","two","three","four"]。
2)extend:向列表末尾添加多个元素,参数不能为空,不能是int型,可为字符串(当成列表处理,每个字符就是一个元素)、元组、列表。如:
参数为字符串:tempList.extend("str") ->tempList = ["one","two","three","s","t","r"]。
参数为元组或列表:tempList.extend(("four",“five”)) ->tempList = ["one","two","three","four",“five”]。
3)list[index:index] = [value]:向列表list指定的位置index插入一个元素。如:tempList[1:1] = ["add"] -> tempList = ["one","add","two","three"].
注:更一般的形式:listname[start:end] = 元组/列表/字符串,可插入多个元素.
4.高级操作及方法:
(1)产生一个数值递增列表:
1)pList = range(N),产生一个元素值为0~N-1的列表。如:pList = range(10) ->pList = [0,1,2,3,...,9]。
2)pList = range(sn,en),产生一个元素值为sn~en-1的列表。如:pList = range(1,5) ->pList = [1,2,3,4]。
3)pList = range(sn,en,inc),产生一个元素值以inc递增的列表。如:pList = range(1,10,2) ->pList = [1,3,5,7,9]
(2)固定值初始化:pList = [value for index in range(N)],产生一个长度为N的列表,元素值都为value.
如:value = "x",N=10,则pLsit = ["x","x",...,"x"]
更简单的形式:pList = [value]*N。
(3)操作符:
1)"+":两个列表相加,将合成为一个列表。如 pL1 = [1,2],pL2 = [3,4],pL1+pL2 ->[1,2,3,4]
2)"*":形式:[value]*N。如value="a",N=4,则得到列表["a","a","a","a"]。
3)del:del pL[index]:删除指定位置的元素。 del pL[sIndex:eIndex]:删除sIndex~eIndex-1位置的元素。
(4)列表复制:
1)pL1 = pL:pL1为pL的别名,即pL1和pL实质为同一个列表,修改其中一个列表,另一个列表也随之变化。
如:pL = [1,2,3],pL1 = pL,pL1[2] = 33,->pL = pL1 = [1,2,33]
2)pL2 = pL[:]:pL2为pL的一个克隆(或拷贝),即pL2和pL为不同的列表,修改其中一个列表,另一个不会受影响。
(5)常用方法:
1)L.append(value):向列表末尾插入一个元素
2)L.insert(index,value):向列表的index位置插入一个元素value。
3)L.pop(index): 从列表中删除指定位置index的元素并返回元素值,默认删除最后一个元素。
4)L.remove(value):删除在列表中第一次出现的元素value。如:pList = [1,2,3,2],pList.remove(2) ->pList = [1,3,2]。
5)L.count(value):返回元素value在列表中出现的次数。
6)L.index(value) :该元素第一次出现的的位置,无则抛异常 。
7)L.extend(list/tuple/string) :向列表末尾插入多个元素。
8)L.sort():排序
9)L.reverse():倒序
字典(dict)
字典是由花括号{}来包含其数据的,花括号内包含键(key)和其对应的值(value),一对键和值成为一个项,键和值用冒号:隔开,项和项之间用逗号,隔开,空字典就是不包含任何项的字典,也可理解为空字典就是花括号内不包含任何内容,直接使用花括号{}表示。
创建一个字典:
dict = {'name':'john','age':20,'sex':male}
备注:键是一个不可变的数据类型
访问字典:
由于字典是无序的,访问字典不能通过索引的方式;通过变量名[键名]来访问。
字典添加项:
变量名:[新添加的键名] = 新添加的键对应的值
字典修改项的值:
变量名:[要修改的键名] = 新值
字典删除项或值:
del方法:删除键对应的值,del 变量名[键名];
删除字典,del 变量名。
clear方法:清空字典内容。
变量名.clear()
pop方法:删除键对应的值,但是它会把对应的值输出后再删除
---字典总结:
1.特性:以名称索引的分组数据。元组和列表以数字顺序索引,而字典的索引可以数字,字母,字符串,符号等。
在字典中,索引叫做:键,即key,对应的值叫做值,即value。
2.创建:dic = {key1:value1,key2:value2},可先创建空字典dic ={},然后再初始化,如dic["one"] = "firstValue"。
注:键是唯一的,字典只认最后一个赋的键值。如:dic = {1:1,2:2,1:3} ->dic = {1:3,2:2},最后一个元素(1:3)被“舍弃”。
3.访问:dic[key],获得key对应的值,若key不存在,则报错。
4.常用方法和操作:
1)D.get(key, defualtValue):获得key对应的值,若key不存在,则返回设置的默认值defualtValue,若没有设置默认值则返回None。
2)D.has_key(key) :检查字典中是否存在键key,有该键返回TRUE,否则FALSE。
3)D.keys():返回由字典所有键构成的列表。
4)D.values():返回由字典所有值构成的列表。
5)D.items():返回由字典所有键值对构成的列表,即[(key1,value1),(key2,value2),(key3,value3),...]。
6)D.update(dic2):将字典dic2中的元素合并到字典D中。
7)D.popitem():随机删除字典中的一个键值对(一项),并返回值。若字典为空则抛出异常。
8)D.clear():清空字典中的元素并返回None
9)D.pop(key):删除指定键所对应的项,并返回key对应的值。key不能为空,也不默认删除排在最后的元素,因为字典是无序的,注意和列表的区别!!!
10)D.copy():拷贝字典,两个字典不是同一个字典。如d = {1:1,2:2},d1 = d.copy() ->d1 = {1:1,2:2}。
11)cmp(dict1,dict2):比较字典,(优先级为元素个数、键大小、键值大小),第一个大则返回1,第一个小则返回-1,一样大则返回0。