python技巧

1,去重

Python列表去掉重复元素的一种方法:

>>> L = [1, 2, 3, 4, 1, 2, 3, 4, 5]
>>> [x for x in L if x not in locals()['_[1]']]
[1, 2, 3, 4, 5]

或者

list(set(a))

 

2,对象排序

list 排序在包含某元素的列表中依据某个属性排序是一个很常见的操作。例如这里我们先创建一个包含 person 的 list:

 class Person(object): 

     def __init__(self, age): 

         self.age = age 

persons = [Person(age) for age in (14, 78, 42)] 

传统的方式是: 

 def get_sort_key(element): 

    return element.age 

 for element in sorted(persons, key=get_sort_key): 

     print "Age:", 

element.age更加简洁、可读性更好的方法是使用 Python 标准库中的 operator 模块: 

from operator import attrgetter 

for element in sorted(persons, key=attrgetter('age')): 

     print "Age:", 

element.ageattrgetter 方法优先返回读取的属性值作为参数传递给 sorted 方法。operator 模块还包括 itemgetter 和 methodcaller 方法,作用如其字面含义。 

 

 3,三元操作

return 1 if v==0 else v 

或者

return v==0 and 1 or v 


4,读取文件

with open("d:/1.log") as fp:

line = fp.readline()

print line


5,格式化字符串

values= {'name':name,'message':message}

print ('Hello%(name)s,you have%(message)i'%values)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值