python技巧

来源:互联网 发布:帆船逆风行驶原理 知乎 编辑:程序博客网 时间:2024/05/22 17:19

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)