python中的列表、元组和字典
列表(List)、元组(Tuple)、字典(Dict)是python中几个比较常用的数据结构,下面简单总结一下它们的用法。
List
List的基本操作
#定义 s = [1, 2, 3, 4] #连接 s+t #重复 s*n n*s #成员测试 x in s #定位元素 s = [1, 2, 3, 4] s[1] #2 s[-1] #4 #修改元素 s = [1, 2, 3, 4] s[1] = 5 print s #[1, 5, 3, 4] #分割 s = [1, 2, 3, 4] s[1:3] #[2, 3] s[1:] #[2, 3, 4] s[:2] #[1, 2]
List的常用函数
L = [1, 2, 3, 4, 1, 2] #L.count(x) 返回x在L中出现的次数 print L.count(1) #2 #L.index(x) 返回x在L中首次出现的位置,如果x不在L中,抛出异常 print L.index(2) #1 #L.append(x) 将元素x添加到L末尾 L.append(5) print L #[1, 2, 3, 4, 1, 2, 5] #L.extend(s) 将可迭代的s中的所有元素添加到L结尾,s需为list、tuple、dict等 L.extend([6, 7]) print L #[1, 2, 3, 4, 1, 2, 5, 6, 7] #L.insert(i, x) 将x插入到L的第i个元素前 L.insert(0, 0) print L #[0, 1, 2, 3, 4, 1, 2, 5, 6, 7] #L.remove(x) 将L中首次出现的值为x的元素移除,如果x不在L中,抛出异常 L.remove(7) print L #[1, 2, 3, 4, 1, 2, 5, 6] #L.pop([i]) 返回L中第i个元素并将其从L中移除 #如果省略参数i,则返回L中最后一个元素并移除 L.pop(0) print L #[2, 3, 4, 1, 2, 5, 6] #L.reverse() 翻转L,倒序排列L中的元素 L.reverse() print L #[6, 5, 2, 1, 4, 3, 2] #L.sort([f]) 对L按照f的规则进行排序 #如果省略f,默认使用内置cmp函数排列,有关排序函数,下次再进行总结 L.sort() print L #[1, 2, 2, 3, 4, 5, 6]
Tuple
Tuple的基本操作
#定义 t = (1, 2, 3, 4) #当定义一个只有一个元素的元组时,需要添加一个逗号 t = (1, ) #连接 t1+t2 #重复 t*n n*t #成员测试 x in t #定位元素 t = (1, 2, 3, 4) t[1] #2 t[-1] #4 #分割 t = (1, 2, 3, 4) t[1:3] #(2, 3) t[1:] #(2, 3, 4) t[:2] #(1, 2)
Tuple是不可改变的List,一旦创建了它,就不能以任何方式它。它没有如List中append、extend之类的那些函数。
Dict
Dict是以键值对的形式来保存数据的结构。
#定义 #Dict中可以包含各种数据类型,甚至是Dict本身 d = {'k1':1, 'k2':3.14, 'k3':'hello'} #成员测试 k in d #定位元素 d = {'k1':1, 'k2':3.14, 'k3':'hello'} d['k1'] #1 #修改元素 d = {'k1':1, 'k2':3.14, 'k3':'hello'} d['k1'] = 2 print d #{'k3': 'hello', 'k2': 3.14, 'k1': 2} #删除元素 d = {'k1':1, 'k2':3.14, 'k3':'hello'} del d['k1'] print d #{'k3': 'hello', 'k2': 3.14}
Dict的常用函数
D = {'k1':1, 'k2':2, 'k3':3}
#D.copy() 返回D的一个拷贝对象,不是引用
D1 = D.copy()
D['k1'] = 0
print D1 #{'k3': 3, 'k2': 2, 'k1': 1}
#D.has_key(k) 返回D中是否含有k键,和 k in D 作用相同
print D.has_key('k1') #True
print D.has_key('k0') #False
#D.items() 返回一个包含D中所有键值对的List
print D.items() #[('k3', 3), ('k2', 2), ('k1', 0)]
#D.keys() 返回一个包含D中所有键的List
print D.keys() #['k3', 'k2', 'k1']
#D.values() 返回一个包含D中所有值的List
print D.values() #[3, 2, 0]
#D.iteritems() 返回一个包含D中所有键值对的可迭代对象
for k in D.iteritems():
print k,
#('k3', 3) ('k2', 2) ('k1', 0)
#D.iterkeys() 返回一个包含D中所有键的可迭代对象
#D.itervalues() 返回一个包含D中所有值的可迭代对象
#D.get(k[, x]) 返回D[k],如果D中没有k键,则返回x;若x省略,此时返回None
print D.get('k2') #2
print D.get('k4',9) #9
print D.get('k4') #None
#D.clear() 清空D
#D.update(D1) 将D1中所有的键值对复制到D中
#若D1中的键k在D中也存在,则D中的该键会被覆盖
D1 = {'k1':9, 'k4':0}
D.update(D1)
print D #{'k3': 3, 'k2': 2, 'k1': 9, 'k4': 0}
#D.setdefault(k[, x]) 若k是D中的键,返回D[k];否则设置D[k]=x,并返回x
print D.setdefault('k5',8) #8
print D #{'k3': 3, 'k2': 2, 'k1': 1, 'k5': 8, 'k4': 0}
#D.pop(k[, x]) 返回D[k]并删除它;若k不是D的键,则返回x,当此时x也未指定,抛出异常
print D.pop('k3') #3
print D #{'k2': 2, 'k1': 1, 'k5': 8, 'k4': 0}
#D.popitem() 返回D中任意一个键值对并删除它
print D.popitem() #('k2', 2)
print D #{'k1': 1, 'k5': 8, 'k4': 0}

浙公网安备 33010602011771号