这个词翻译过来就是 这很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. 使用FFMPeg对视频进行处理

    FFMPeg处理视频的核心操作方式是命令,无论是在Windows上还是Linux上.那么下边就简单介绍下,常见的处理命令. 示例1:截取一张352×240尺寸大小的,格式为jpg的图片: ffmpeg ...

  2. Jupyter 初体验

    简介 Jupyter notebook 是一个非常强大的工具,可以创建漂亮的交互式文档. 安装 安装环境:win7专业版32位系统 + python 3.6.4 安装命令:pip install ju ...

  3. Python——Web.py詳解

    ubuntu安裝Web.py sudo pip install web.py 測試代碼: import web urls = ( '/(.*)','hello' ) app = web.applica ...

  4. 【java学习笔记】Properties

    Properties:可以持久化的映射,规定键和值的类型是String. Properties对象必须放到.properties文件中,其中properties文件默认为西欧编码,也因此不存储中文. ...

  5. 【前端】Vue2全家桶案例《看漫画》之二、完成首页基本样式

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

  6. 进程中调用CreateMutex

    // TestStorage.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #inc ...

  7. LINUX下printf输出字体的特效

    在学习LINUX网络编程的时候我们做了一个聊天系统,当时为了界面更漂亮点,于是在百度上搜索了下关于printf()函数的用法,和大家分享下:                           给pr ...

  8. [Err] 1136 - Column count doesn't match value count at row 1

    1 错误描述 [Err] 1136 - Column count doesn't match value count at row 1 Procedure execution failed 1136 ...

  9. com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'user'

    1.错误描述 2014-7-12 21:06:05 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource getPoolManager 信息: I ...

  10. Linux中挂载Windows共享出来的目录

    Windows中1.新建文件夹,创建共享目录 右键文件夹,共享 2.设置访问方式 Everyone,添加确认 Linux-ubuntu中1.安装cifs#sudo apt-get install ci ...