这个词翻译过来就是 这很python,其产生的目的就是写出更简洁的,没有冗余的python代码。

1.元素交换

a, b = b, a
看到网上有人解释的很好,首先,建立元组的重点不在于括号‘()’,而是在于逗号‘,’,例如x=(1),你打印会发现x并不是一个元组,而 x=1,,这样打印x就是一个元组。
所以,a,b = b,a,这个等式的右边就是一个(b,a)元组
然后加入一个很重要的概念叫元组解包,就是把一个元组解开直接赋予几个变量,例如x y z = (a,b,c),这样会得到x=a,y=b,z=c
注意的是如果变量个数和元素个数不相等时会报错
所以最终我们可以得到一种看似神奇简便的交换变量值得写法a,b=b,a

  

2.迭代元素的同时获取索引

list = [1, 4, 9]
for i, val in enumerate(list):
print(i, '-->', val)

3.字符串的拼接

names = ['Tom', 'Jack', 'Sam']
','.join(names)

+操作都会产生新字符串,造成内存浪费,而join,整个过程中只会产生一个字符串对象

4.列表操作

from collections import deque

names = deque(['c', 'd', 'e'])
names.popleft()
names.appendleft('b')
names.append('f')

deque模块是python标准库collections中的一项,是一个链表结构,它提供了两端都可以操作的序列,这意味着,在序列的前后你都可以执行添加或删除操作。所以,避免使用list。

5.python解析赋值

student = ['Tom', 18, 'male']
name, age, gender = student
print(name, age, gender)
# Tom 18 male num_list = [100, 19, 20, 98]
first, *left_num_list, last = num_list
print(first, left_num_list, last)
# 100 [19, 20] 98

  

student = {
'name': 'Tom',
'age': 18
} # python3
for k, v in student.items():
print('k', '-->', v)

6.列表生成式

# 生成1-100的奇数
odd = [i for i in range(1, 100) if i % 2 == 1] # 集合a,b分别去一个数,找出和大于100的所有组合
result = [(x, y) for x in a_set for y in b_set if x + y > 100]
当前用户home目录下所有的文件列表:[ item for item in os.listdir(os.path.expanduser('~')) if os.path.isfile(item) ] 
当前用户home目录下所有的目录列表:[ item for item in os.listdir(os.path.expanduser('~')) if os.path.isdir(item) ]
当前用户home目录下所有目录的目录名到绝对路径之间的字典:{ item: os.path.realpath(item) for item in os.listdir(os.path.expanduser('~')) if os.path.isdir(item) }

  

7.python判断数字的区间

0 < a < 10

  

Pythonic的更多相关文章

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

    Pythonic其实是个模糊的含义,没有确定的解释.网上也没有过多关于Pythonic的说明,我个人的理解是更加Python,更符合Python的行为习惯.本文主要是说明一些Python的惯用法和小技 ...

  2. python gui之tkinter界面设计pythonic设计

    ui的设计,控件id的记录是一件比较繁琐的事情. 此外,赋值和读取数据也比较繁琐,非常不pythonic. 有没有神马办法优雅一点呢?life is short. 鉴于控件有name属性,通过dir( ...

  3. [python]pythonic的字典常用操作

    注意:dct代表字典,key代表键值 1.判断字典中某个键是否存在 实现 dct.has_key(key) #False 更Pythonic方法 key in dct #False 2.获取字典中的值 ...

  4. Pythonic八荣八耻

    以动手实践为荣 , 以只看不练为耻; 以打印日志为荣 , 以单步跟踪为耻; 以空格缩进为荣 , 以制表缩进为耻; 以单元测试为荣 , 以人工测试为耻; 以模块复用为荣 , 以复制粘贴为耻; 以多态应用 ...

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

    pythonic如果翻译成中文的话就是很python.很+名词结构的用法在中国不少. 以下为了简略,我们用P表示pythonic的写法,NP表示non-pythonic的写法,当然此P-NP非彼P-N ...

  6. Be Pythonic ,Google Python Style Guide

    为了更规范的写代码,变得更专业 分号 1 不在句末添加分号,不用分号在一行写两句代码 行长度 2 每行不超过80字符,python会隐式行连接圆括号,中括号,花括号中的字符,如多参数方法调用可以写为多 ...

  7. 内置方法+lambda是pythonic的利器

    python可以写的非常简洁,通过使用内置的map,reduce,filter,lambda方法,非常具有文艺范. 举个例子,例如 def fromIpToNum(ipAddr):    return ...

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

    原题: https://segmentfault.com/q/1010000005904259 问题: 倘若存在 L=[ [1,2,3],[4,5,6],[7,8,9]] 这样的列表,如何把合并成[1 ...

  9. Pythonic到底是什么玩意儿?

    http://blog.csdn.net/gzlaiyonghao/article/details/2762251 作者:Martijn Faassen 译者:赖勇浩(http://blog.csdn ...

  10. python pythonic是什么?

    原文地址:http://faassen.n--tree.net/blog/view/weblog/2005/08/06/0 注:Martijn 是 Zope 领域的专家,他为 Zope 系列产品做了许 ...

随机推荐

  1. #pragma预处理命令

    #pragma comment(lib,"XXX.lib") 表示链接XXX.lib这个库,和在工程设置里写上XXX.lib的效果一样. #pragma comment(linke ...

  2. PAT Public Bike Management (dfs)

    思路:你的答案必须满足三个条件: 1.在所有路径中选择最短的: 2.如果路径相等,则选择从PBMC中送出最少的: 3.如果路径相等且PBMC送出的车也相等,则选择带回最少的. 注意:这题很恶心,你要考 ...

  3. Oracle总结【PLSQL学习】

    PLSQL介绍 PLSQL是Oracle对SQL99的一种扩展,基本每一种数据库都会对SQL进行扩展,Oracle对SQL的扩展就叫做PLSQL... SQL99是什么 (1)是操作所有关系型数据库的 ...

  4. linux Nagios监控

    监控目标 监控目标主机分为四个部分 硬件资源 操作系统 数据库 应用软件 监控目的: 进行服务器性能调整前,知道调整什么,系统瓶颈在什么地方 被一部分必须同时监控,内容包括吞吐量,反应时间,使用率等 ...

  5. 【前端】Vue2全家桶案例《看漫画》之四、漫画页

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/vue_vux_app_4.html 项目github地址:https://github.com/shamoyuu/ ...

  6. 2.5 非透明PCI桥

    PCI桥规范定义了透明桥的实现规则,本篇在第2.3.1节中详细介绍了这种桥片.通过透明桥,处理器系统可以以HOST主桥为根节点,建立一颗PCI总线树,在这个树上的PCI设备共享同一个PCI总线域上的地 ...

  7. PCI、CPCI、CPCIE 区别、特点

    PCI.CPCI.CPCIE 区别.特点 CPCI总线 •PCI总线作为处理器系统的局部总线,主要目的是为了连接外部设备,而不是作为处理器的系统总线连接Cache和主存储器 •(1) PCI总线空间与 ...

  8. python︱模块加载(pip安装)以及pycharm安装与报错解决方式

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 准备放下R开始学python,真是痛苦,因为找 ...

  9. Java中的List转换成JSON报错(五)

    1.错误描述 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/beanu ...

  10. 异常-----freemarker.core.ParseException: Encountered "string"

    1.错误描述 freemarker.core.ParseException: Encountered "string" at line 21, column 21 in type. ...