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的基本操作

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]
List的常用函数

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的基本操作

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的基本操作

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}
Dict的常用函数

 

posted @ 2013-06-02 23:14  索尔斯克亚  阅读(227)  评论(0)    收藏  举报