python技巧

列表解析

语法:[expr for iter_var in iterable] [expr for iter_var in iterable if cond_expr]

如果是有类的情况下,可以使用

class Person(object):

9     def __init__(self, name, age = 0):

10         self.name = name

11         self.age = age

12     def __repr__(self):

13         return ‘Name: %s\t‘\

14                ‘Age : %d‘ % (self.name, self.age)

def testListSort():

17     # 知识点:列表推导

18     persons = [Person(name) for name in (‘Shanno‘, ‘Tony‘, ‘Guass‘)]

例子:[类包(方法名t)for  t  in (obj1,obj2.....)]

生成器:(expr for iter_var in iterable) 
(expr for iter_var in iterable if cond_expr)

Sorted语法

sorted(iterable, cmp=None, key=None, reverse=False)

operator.attrgetter的原型

operator.attrgetter(‘age‘)(sm_p)

for p in persons:

39         # 知识点:使用in判断key是否在dict内

40         if p.age not in persons_by_age:

41             persons_by_age[p.age] = [p]

42         else:

43            persons_by_age[p.age].append(p)

# 知识点:遍历dict获取的是key

46     for age in persons_by_age:

47         print ‘---------- age %d --------‘ % age

48         for p in persons_by_age[age]:

49             print p

50     print ‘\r\n‘

51

#知识点:defaultdict为不存在的key创建空的list

56     persons_by_age = collections.defaultdict(list)

57     for p in persons:

58        persons_by_age[p.age].append(p)

59

60     # 知识点:遍历dict获取的是key

61     for age in persons_by_age:

62         print ‘---------- age %d --------‘ % age

63         for p in persons_by_age[age]:

64             print p

对文件进行遍历

def getRelFilePathList(targetDir):

12     relFilePaths = []

13     for rt, dirs, files in os.walk(targetDir):

14         for fn in files:

15             fpath = os.path.join(rt, fn)

16            relFilePaths.append(os.path.relpath(fpath, targetDir))

17     return relFilePaths

18

python技巧

时间: 2024-10-29 19:07:08

python技巧的相关文章

python技巧31[移植python2.x到3.x]

我们都知道python从2.x升级到3.x的过程中有一些不兼容的改动,但是有时还我们不得不将2.x的程序升级到3.x. 主要不兼容如下图: 移植过程: 1) 确保存在的代码有足够的测试覆盖.从2.x到3.x的升级工作量并不是很大,但是包含了很多的微小的不兼容,必须通过测试来确保升级后的程序仍然保持原有的功能.完全的测试覆盖不是被建议的,但是确实是需要的. 2) 用python 2.6 的 -3 命令行选项来运行程序,从而发现和去除明显的不兼容问题. 3) 使用2to3转化工具来自动地将程序转化为

爱情有36计,不如看我这26条python技巧!

作者 Peter Gleeson 是一名数据科学家,日常工作几乎离不python.一路走来,他积累了不少有用的技巧和tips,现在就将这些技巧分享给大家.这些技巧将根据其首字母按A-Z的顺序进行展示. ALL OR ANY Python之所以成为这么一门受欢迎的语言一个原因是它的可读性和表达能力非常强.Python也因此经常被调侃为“可执行的伪代码”.不信你看: x = [True, True, False]if any(x):    print("At least one True"

【python技巧】“&”、“>>”等符号操作

[python技巧] 1)[关于‘&’ :按照二进制进行与操作,可以用作判断奇偶][https://zhidao.baidu.com/question/308587899.html] & 是位运算:and 是逻辑运算. [举例1] >>> a = 1 >>> b = 2 >>> #1 的二进制是 1,2的二进制是 10 >>> a&b 0 >>> a and b 2 [举例2] 对于(m+n)

一份超级实用的 Python ”技巧“清单

Python是世界上最受欢迎,最流行的编程语言之一.这有很多原因: 它很容易学习 它是超级多用途的 它有大量的模块和库 每天使用Python是我内在工作的一部分.在这个过程中,我学会了一些有用的技巧和心得. 在这里,我尝试以A~Z顺序共享其中一些. 大多数这些"技巧"是我在日常工作中使用或偶然发现的事情.一些是我在浏览Python标准库文档时发现的.另外一些是通过PyPi搜索到的. 但是,应该归功于它 - 我在awesome-python.com上发现了其中的四个或五个.这是数百个有趣

重点来了!掌握这些Python技巧,将给你节省大量时间

希望你们可以将这些技巧运用到项目中.尽管没有运行时的速度或性能优势,但是与从零开始实施此逻辑相比,这将为你节省大量时间.因此,言归正传,让我们来看这三点吧: 1.拉姆达函数(Lambda Functions) 拉姆达函数非常强大.当然,当必须以相同的方式清理多个列时,我们不会使用它,但这并不是经常遇到的情况.通常情况下,每个属性在清理后都需要自己的逻辑. Lambda函数允许创建“匿名”函数.这基本上意味着可以快速生成特定函数,而无需使用pythonsdef来正确定义函数. 尽管如此,请记住La

【Python技巧系列】unittest:python自带测试模块【转载】

****本文转载自http://www.cnpythoner.com/post/303.html**** 1 python unittest单元测试方法和用例 2 3 python内部自带了一个单元测试的模块,pyUnit也就是我们说的:unittest 4 5 先介绍下unittest的基本使用方法: 6 7 1.import unittest 8 2.定义一个继承自unittest.TestCase的测试用例类 9 3.定义setUp和tearDown,在每个测试用例前后做一些辅助工作. 1

【Python技巧系列】条件语句一行实现

发现了一种巧妙的条件语句实现方式:(是在pattern的README中的一个小例子里面看到的) 1 1 if A < 1: 2 2 B 3 3 else: 4 4 C 5 5 6 6 ###can be transformed to 7 7 8 8 A < 1 and B or C 9 9 得益于python灵活的格式转换,  and, or 这些逻辑符号我一直认为计算得到的是布尔值,只能用在判断语句中,比如: 1 if 1 and 2: 2 print 1 3 4 >> 1 5

python 技巧 之 pyCharm快速添加第三方库和插件

学习python有几个月,安装第三方库都是通过 pip install 或者 easy_install.每次都要打开命令行感觉太麻烦.还好Pycharm提供了安装第三方库和安装插件的功能. 首先打开Pycharm,点击左上角  >>File  >>Setting . 打开之后点击 >>PRoject :untitled   >>Project interpreter  . 点击左边的绿色的加号就可以添加新的第三方库了. 你感觉怎么样? 我是觉得比打开命令行方

Python 技巧

1.根据路径导入模块 如果想引用指定路径下的某个模块,则需要使用sys.path.append("module_directory") 来把这个路径添加到sys下,这就涉及到Python语言中import的机制了.如:想引用/home/a/目录下的/b模块,既可以书写如下 import sys; sys.path.append("/home/a/") import b