1.列表常用操作
a=[1,2,3]
在后面增加
a.append(300)
在指定地点插入
a.insert(1,50)
弹出最后一位
a.pop()
排序
a.sort()
逆序
a.reverse()
删除
del a[1]
2.注意,a.sort() 已改变其结构,b = a.sort() 是错误的写法!
3.对列表中元素为字典,进行排序
f = [{'name':'abc','age':20},{'name':'def','age':30},{'name':'ghi','age':25}]
def age(s):
return s['age']
ff=sorted(f,key=age)
或者
ff=sorted(f,key=lambda x:x['age'])
ff==>[{'age': 20, 'name': 'abc'}, {'age': 25, 'name': 'ghi'}, {'age': 30, 'name': 'def'}]
4.元组
就像不可变的列表,不能原处修改。
因为tuple不可变,所以代码更安全。
5.列表和元组相互转化
t=tuple(list_n)
l=list(tuple_n)
6.字典
是一个散列表(没有固定的顺序 )
key不一定是字符串,但一定是不可变的对象。
7.字典常用方法
利用元组或者列表生成字典
t=(('a', 1), ('b', 2), ('c', 3))
l=[['a', 1], ['b', 2], ['c', 3]]
x=[('a', 1), ('b', 2), ('c', 3)]
dict(t)
dict(l)
dict(x)
都可以转换成字典
利用zip函数和dict生成
text = 'c++ python shell ruby java javascript c'
code_num = [38599, 100931, 26153, 93142, 84275, 184220, 46843]
text_list=text.split(' ')
code_dict = dict(zip(text_list,code_num))
#获取keys/values/items
a={'a': 1, 'c': 3, 'b': 2}
a.keys()
a.values()
a.items() ==>[('a', 1), ('c', 3), ('b', 2)]
get方法,避免访问空key
a.get(key,default)
update方法,相当于插入
a.update({‘d’:4,’e’:5})
del方法
del a[‘a’]
clear方法
a.clear()
8.对字典排序
第一种:
根据关键字key进行排序
[(k,dict[k]) for k in sorted(dict.keys())]
第二种:
根据关键字key或者值value进行排序
sorted(dict.iteritems(),key=lambda d:d[0])
9.字典拷贝
浅拷贝:
dict.copy()
copy.copy(dict)
深拷贝:
copy.deepcopy(dict)
10.zip函数
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
xyz==>[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
u = zip(*xyz)
u==>[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
一般认为这是一个unzip的过程,它的运行机制是这样的:
在运行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
那么,zip(*xyz) 等价于 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))
所以,运行结果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]