Python之几个技巧特点

今天偶然看到一篇文章<你可能不知道的30个Python语言的提点技巧>,虽然做python有几年了,但中间还是好多不知道或没想到,特在这里做下摘抄.

原文地址: http://soft.chinabyte.com/database/379/12920379.shtml

1. 命名切片

>>> a = [0, 1, 2, 3, 4, 5]

>>> LASTTHREE = slice(-3, None)

>>> LASTTHREE

slice(-3, None, None)

>>> a[LASTTHREE]

[3, 4, 5]

2. zip 打包和解包列表

>>> a = [1, 2, 3]
>>> b = [‘a‘, ‘b‘, ‘c‘]
>>> z = zip(a, b)
>>> z
[(1, ‘a‘), (2, ‘b‘), (3, ‘c‘)]
>>>
>>> zip(*z)
[(1, 2, 3), (‘a‘, ‘b‘, ‘c‘)]

3. 使用 zip 合并相邻的列表项

>>> a=[1,2,3,4,5]
>>> zip(*([iter(a)]*2))
[(1, 2), (3, 4), (5, 6)]>>>>>> zip(a[::2], a[1::2])[(1, 2), (3, 4), (5, 6)]

可以写成个匿名函数

group_adjacent_1 = lambda a, k:zip(*([iter(a)]*k))

group_adjacent_2 = lambda a, k:zip(*(a[i::k] for i in range(k)))

其中 a 标识要合并的列表, k 表示要合并相邻的 k 个元素

>>> group_adjacent_1(a, 3)
[(1, 2, 3), (4, 5, 6)]
>>> group_adjacent_1(a, 1)
[(1,), (2,), (3,), (4,), (5,), (6,)]>>>>>>>>> group_adjacent_2(a, 3)[(1, 2, 3), (4, 5, 6)]>>> group_adjacent_2(a, 1)[(1, 2, 3), (4, 5, 6)]

4. 使用zip和iterators生成滑动窗口

>>> from itertools import islice
>>> def n_grams(a, n):
...     z=(islice(a, i, None) for i in range(n))
...     return zip(*z)
...
>>> a = [1, 2, 3, 4, 5, 6]
>>> n_grams(a, 3)
[(1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6)]
时间: 2024-08-26 17:36:49

Python之几个技巧特点的相关文章

Python字典增删操作技巧简述

Python编程语言是一款比较容易学习的计算机通用型语言.对于初学者来说,首先需要掌握的就是其中的一些基础应用.比如今天我们为大家介绍的Python字典的相关操作,就是我们在学习过程中需要熟练掌握的技巧. Python字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成.字典的键必须是不可改变的类型,如:字符串,数字,tuple:值可以为任何Python数据类型. 1.新建Python字典 >>> dict = {} #新建一个空字典 >>>

Python 代码性能优化技巧(转)

原文:Python 代码性能优化技巧 Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 80% 的工作量.优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率. 改进算法,选择合适的数据结构 一个良好的算法能够对性能起到关键作用,因此性能改进的首要点是对算法的改进.在算法的时间复杂度排序上依次是: O(1) -> O(lg n) -> O(

python 的一些小技巧

赋值: a, b, c = 'xixi', 'haha', 'hehe' 连接字典: >>> s = {1:'a', 2:'b', 3:'c'} >>> s.keys()[1, 2, 3]>>> s.values()['a', 'b', 'c'] >>> s.items()[(1, 'a'), (2, 'b'), (3, 'c')] >>> [(k, v) for (k, v) in s.items()][(1, '

python中的小技巧

1.求1~100以内的素数 prime=filter(lambda x: not [x%i for i in range(2,x) if x%i==0], range(2,101))#列表推导,一行搞定.print prime 2.求字符串子串 s='hauifnefldmfp'[s[i:i+n] for i in range(len(s)) for n in range(1, len(s)-i+1)] 3.求任意字符串中,所有符合ab 类型的子串: eg:s ='aabbbb123456jji

Python 第三方库安装技巧

Python 是一门优雅的语言,简洁的语法,强大的功能.当然丰富的第三方库,更能加速开发.那么问题来了,如何安装这些第三方库(包)呢? 安装第三方库的方式其实不多.下面就介绍一些技巧. 源码安装 很多第三方库都是开源的,几乎都可以在github 或者 pypi上找到源码.找到源码格式大概都是 zip . tar.zip. tar.bz2格式的压缩包.解压这些包,进入解压好的文件夹,通常会看见一个 setup.py 的文件.打开命令行,进入该文件夹.运行 python setup.py insta

[转载]你可能不知道的 30 个 Python 语言的特点技巧

[转载地址:http://www.oschina.net/translate/thirty-python-language-features-and-tricks-you-may-not-know] 从我开始学习Python时我就决定维护一个经常使用的“窍门”列表.不论何时当我看到一段让我觉得“酷,这样也行!”的代码时(在一个例子中.在StackOverflow.在开源码软件中,等等),我会尝试它直到理解它,然后把它添加到列表中.这篇文章是清理过列表的一部分.如果你是一个有经验的Python程序

python第三方库安装技巧

本文源地址 http://www.jianshu.com/p/9acc85d0ff16 Python 是一门优雅的语言,简洁的语法,强大的功能.当然丰富的第三方库,更能加速开发.那么问题来了,如何安装这些第三方库(包)呢? 安装第三方库的方式其实不多.下面就介绍一些技巧. 源码安装 很多第三方库都是开源的,几乎都可以在github 或者pypi上找到源码.找到源码格式大概都是 zip . tar.zip. tar.bz2格式的压缩包.解压这些包,进入解压好的文件夹,通常会看见一个 setup.p

转:给Python初学者的一些技巧

转:http://www.techug.com/some-python-tips-for-beginner 以下是我近些年收集的一些Python实用技巧和工具,希望能对你有所帮助. 交换变量 x = 6 y = 5 x, y = y, x print x >>> 5 print y >>> 6 if 语句在行内 print "Hello" if True else "World" >>> Hello 连接 下面的

Python初学者的一些技巧

以下是我近些年收集的一些Python实用技巧和工具,希望能对你有所帮助. 交换变量 x = 6 y = 5 x, y = y, x print x >>> 5 print y >>> 6 if 语句在行内 print "Hello" if True else "World" >>> Hello 连接 下面的最后一种方式在绑定两个不同类型的对象时显得很cool. nfc = ["Packers"

[转] Python 代码性能优化技巧

选择了脚本语言就要忍受其速度,这句话在某种程度上说明了 python 作为脚本的一个不足之处,那就是执行效率和性能不够理想,特别是在 performance 较差的机器上,因此有必要进行一定的代码优化来提高程序的执行效率.如何进行 Python 性能优化,是本文探讨的主要问题.本文会涉及常见的代码优化方法,性能优化工具的使用以及如何诊断代码的性能瓶颈等内容,希望可以给 Python 开发人员一定的参考. Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下