Pythonic(一)

Pythonic的代码,看起来像是伪代码,其实,所有的伪代码都可以轻易的转换为可执行的Python代码。Python可以用极为简易的语句完成工作。如C语言中交换两个变量:
int a = 1, b = 2;
int temp;//需要多定义一个临时变量
temp = a;
a = b;
b = temp;
利用Python只用一行代码即可完成:
a,b = b,a

需要遍历一个容器时,C代码为:
int length,i;
length = sizeof(alist)/sizeof(alist[0]);
while (i < length)
{
    alist[i];
    i +=1;
}
利用Python代码:
for i in alist:
    i

灵活地使用迭代器是一种Python风格。又比如,需要安全的关闭文件描述符,可以使用with语句:
with open(path,‘r‘) as f:
    do_sth_with(f)

时间: 2024-11-06 09:51:10

Pythonic(一)的相关文章

Pythonic论坛怪怪的’居民’显示[已解决]

之前使用Pythonic搭建的论坛people界面显示有点问题 第一个用户不显示,问了下作者,作者回复说这个Link只有~/people/而没有用户名 就点到为止了. 按说我使用syncdb同步时注册的管理员应该显示在最前面的.但是却不是这样.前段时间也挺忙的,就先放一放了. ------ 今天继续顺着url读源码.people的view还有people_list模板还是挺易读的,似乎没有什么问题. 于是想看看数据库中的用户是什么样子的. 这CMD的显示我也是醉了…上网找了一圈,发现个Navic

python gui之tkinter界面设计pythonic设计

ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir(Entry_obj)得知,存放在一个_name的属性里面.于是就有了以下代码: Entry(frame,name='your_id1').grid(row=x1,column=y1) Entry(frame,name='your_id2').grid(row=x2,column=y2) ... En

为Pythonic论坛添加一个“专题”功能(续)

上篇博文<为Pythonic论坛添加一个“专题”功能>,在模板的层次上对发帖进行了限制.也就是根据用户是否拥有权限来决定是否显示发帖框. 但是自从这么“投机取巧”的写完模板后,整夜辗转反侧,不知道用户能否通过其它节点在不能够发帖的节点本地添加发帖框实现发帖. 最终,我还是觉得不靠谱…需要在服务端也进行下验证.简单的处理,终于填了坑 翻看\apps\topic\views.py文件找到def topic_create(request, node_slug):函数定义. if node.categ

字典对象的 Pythonic 用法(上篇)

字典对象在Python中作为最常用的数据结构之一,和数字.字符串.列表.元组并列为5大基本数据结构,字典中的元素通过键来存取,而非像列表一样通过偏移存取.笔者总结了字典的一些常用Pyhonic用法,这是字典的Pythonic用法的上篇 0. 使用 in/not in 检查 key 是否存在于字典 判断某个 key 是否存在于字典中时,一般初学者想到的方法是,先以列表的形式把字典所有键返回,再判断该key是否存在于键列表中: dictionary = {} keys = dictionary.ke

一些Python的惯用法和小技巧:Pythonic

Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技巧,其实与上一篇<编码规范>有异曲同工之妙,都是为了增加代码可读性,但Pythonic可能还会从性能的角度进行考虑. 首先是两个不得不说的Python的特性List Comprehension和Generator Expression,非常精简的语法,很大程度上取代了冗长for循环. 1. 列表解

什么是pythonic的思考方式

最近在学习大神 slatkin 的高效编程指南,发现有很多细节以往自己都不曾注意过但却是非常值得了解的.在这里总结并分享给大家. 1.遵循PEP8的编程风格 PEP8全称<Python Enhancement Proposal #8>,又叫做8号python增强提案,通过规范编程风格,使得自己的代码更加易懂,不同的开发人员之间可以更高效地沟通.完整指南见:https://www.python.org/dev/peps/pep-0008/.比较常用的一点建议是:添加缩进时尽量使用空格,tab键在

一道面试题引发的pythonic

一道测试工程师面试题(来自搜狗): 自己写了解法: # -*- coding: utf-8 -*- import re #从整体log中过滤出有用的部分,缩小搜索范围 def filter_log(the_log): r = r'[CRIUS]' return re.findall(r, the_log) #统计每个目标字符出现过的最少次数,即最少出现过几次完整log def check_count(target,target_log): target_dic = {} for one in t

[Python]更加Pythonic的多个List合并和Python的安利

原题: https://segmentfault.com/q/1010000005904259 问题: 倘若存在 L=[ [1,2,3],[4,5,6],[7,8,9]] 这样的列表,如何把合并成[1,2,3,4,5,6,7,8,9]呢? 最直接的方法(By:松林) ret = [] for x in L: ret += x print(x) 使用标准库中的itertools模块(By:dokelung) from itertools import chain lst = list(chain(

记录优雅的pythonic代码

记录平时学习中接触到的和网上看到的一些pythonic的方法,只为日后查询时候方便. 1.列表推导式: seq_list=[1,2,3,4,5] new_list=[i *2 for i in seq_list if i %2==0 ] 2.生成器表达式(减少内存占用) seq_list=(i*2 for i in range(0,1000) ) 3.强大的内置函数zip,可遍历两个可迭代对象.在将行转换为类时特别有用.(但似乎zip函数在处理大的数据时速度会比较慢) list_1 = [1,2

如何让你的Python代码更加pythonic ?

pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少. 以下为了简略,我们用P表示pythonic的写法,NP表示non-pythonic的写法,当然此P-NP非彼P-NP. 为什么要追求pythonic? 相比于NP,P的写法简练,明确,优雅,绝大部分时候执行效率高,代码越少也就越不容易出错.我认为好的程序员在写代码时,应该追求代码的正确性,简洁性和可读性,这恰恰就是pythonic的精神所在. 对于具有其他编程语言经验而初涉Python的程序员(比如我自己)来说