Python语法备忘-常用函数

刷leetcode发现有很多没怎么用过的函数,很方便,这里记录一下。

1.collections.Counter()

> from collections import Counter
> s="hello,it's me"
> result=Counter(s)#结果类似一个dict
Counter({'e': 2, 'l': 2, ' ': 1, "'": 1, 'i': 1, 'h': 1, 'm': 1, 'o': 1, ',': 1, 's': 1, 't': 1})
#这三个用法跟dict一样
>result.values()
>result.keys()
>result.items()

2.lambda 函数
晚上面试的时候悲剧了,dict怎么排序

>a={'a':7,'b':2,'c':1,'d':4}
#按值排序
>b=sorted(a.iteritems(),key=lambda item:item[1],reverse=False)
>b
[('c', 1), ('b', 2), ('d', 4), ('a', 7)]
#按key排序
>b=sorted(a.iteritems(),key=lambda item:item[0],reverse=False)

3.sorted函数 list.sort()
sorted(iterable[, cmp[, key[, reverse]]])
排序结果放入新生成的对象中
- iterable–可迭代对象
- cmp–比较函数
- key–比较关键字
- reverse–False(升序)True(降序)

>a={'a':7,'b':2,'c':1,'d':4}#a不会变,b保存排序结果
>b=sorted(a.iteritems(),key=lambda item:item[1],reverse=False)
>b
[('c', 1), ('b', 2), ('d', 4), ('a', 7)]

list.sort()
只用于列表的排序,排序结果写入原列表

>a=[1,4,2,0]
>a.sort()
>a
[0, 1, 2, 4]

4. dict.get
python字典,dict

>d={1:'a',2:'b',3:'c'}
>d[1]
'a'
>d.get(1,None)#如果key不存在,直接使用d[key]会报错,用get方法比较安全,可以指定不存在时的默认返回值
'a'
>d.get(4,-1)
-1

5. zip函数
zip函数接受0,1或多个列表作为参数,返回一个tuple列表

>x=[1,2,3]
>y=[4,5,6]
>z=[7,8,9]
>xyz=zip(x,y,z)#多个参数
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>zip(x)#1个参数
[(1,), (2,), (3,)]
>zip()#没有参数
[]

zip常用来字典的构造

>xy=zip(x,y)#
>d=dict(xy)
{1: 4, 2: 5, 3: 6}

zip搭配for循环,用于并行迭代

>for a,b in zip(x,y):
    print a*b,
4 10 18

zip(*…)相当于unzip的过程

>x=[1,2,3]
>y=[4,5,6]
>z=[7,8,9]
>xyz=zip(x,y,z)
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
>zip(*xyz)#相当于unzip
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值