python--列表 、元组、字典

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)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值