python笔记7:优雅的python
7. 如何让python代码更 Pythonic :
1、变量交换:
a, b = b, a
2、带有索引位置的集合遍历:
colors = ['red', 'green', 'blue', 'yellow']
for i, color in enumerate(colors):
print i, '--->', color
3、字符串连接:
names = ['raymond', 'rachel', 'matthew', 'roger','betty', 'melissa', 'judith', 'charlie']
print ', '.join(names)
注:使用 + 操作时,每次都会在内存中生成一个新的字符串对象,而 join 方法整个过程只产生一个字符串对象。
4、打开/关闭文件:
with open('data.txt') as f:
data = f.read()
注:使用 with 语句,系统会在执行完文件操作后自动关闭文件对象。
5、合理使用列表
from collections import deque
names = deque(['raymond', 'rachel', 'matthew', 'roger','betty', 'melissa', 'judith', 'charlie'])
names.popleft()#删除最左边元素
names.appendleft('mark')#在最左边添加新元素
注:列表list 是一种查询效率高于更新操作的数据结构,删除和插入新元素时效率很低,队列deque 是一个双向队列的数据结构,删除元素和插入元素会很快
6、序列解包:
p = 'vttalk', 'female', 30, 'python@qq.com'
name, gender, age, email = p
7、遍历字典的 key 和 value
for k, v in d.iteritems(): 注:iteritems 返回迭代器对象,在python3中只有 items 方法,等值于iteritems
print k, '--->', v
8、链式比较操作: if 18 < age < 60:
猜一猜:>>> False == False == True (答案为:False)
9、if/else 三目运算:
text = '男' if gender == 'male' else '女'
10、真值判断:
if attr: 等价于 if attr == True:
if values:(或 not values) 等价于 if len(values) != 0:(或 =0) # 判断列表是否为空
11、for/else语句
for else 是 Python 中特有的语法格式,else 中的代码在 for 循环遍历完所有元素之后执行
12、获取字典元素
d = {'name': 'foo'}
d.get("name", "unknow") #如果d有key=name,则获得其value,否则key=unknow
13、预设字典默认值
(场景:通过 key 分组的时候,不得不每次检查 key 是否已经存在于字典中。)
groups = {}
for (key, value) in data: #方式一,常用
groups.setdefault(key, []).append(value)
14、字典推导式
numbers = [1, 2, 3]
my_dict = {number: number * 2 for number in numbers if number > 1}
print(my_dict) # {2: 4, 3: 6}
15、。。。
python笔记7:优雅的python的更多相关文章
- A Byte of Python 笔记(12)python 标准库:sys、os,更多内容
第14章 python 标准库 Python标准库是随Python附带安装的,它包含大量极其有用的模块. sys 模块 sys 模块包含系统对应的功能.如 sys.argv 列表包含命令行参数. # ...
- python笔记:学习设置Python虚拟环境+配置 virtualenvwarpper+创建Python3.6的虚拟环境+安装numpy
虚拟环境它是一个虚拟化,从电脑独立开辟出来的环境.就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互 ...
- python 笔记1:安装python;eclipse中安装配置pydev
1 下载安装python. 官网:https://www.python.org/downloads/ 根据自己的操作系统选择需要的版本下载并安装. 我的电脑操作系统windows xp的,只 ...
- devi into python 笔记(四)python的类
import 与 from ... import ...: #types只是一个包,FunctionType只是这个包里的一个函数.这里用它来演示 import types #如果要用Function ...
- [Python笔记][第四章Python正则表达式]
2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...
- [Python笔记][第三章Python选择与循环]
1月28日学习 Python选择与循环 选择结构 多分枝选择结构 if 表达式 1: 语句块 1 elif 表达式 2: 语句块 2 elif 表达式 3: 语句块 3 ... else : 语句块 ...
- MOOC python笔记(二)python中的数据类型和基本语句
python数据类型 数字类型 整数(int) 与数学中整数概念一致(数字大小没有限制,这和其他语言不同),整数可正可负,默认情况下,整数采用十进制.其他进制需要增加相应的引导符号. 如果是二进制在前 ...
- boost.python笔记
boost.python笔记 标签: boost.python,python, C++ 简介 Boost.python是什么? 它是boost库的一部分,随boost一起安装,用来实现C++和Pyth ...
- 【Python开发】C和Python之间的接口实现
作者:Jerry Jho 链接:https://www.zhihu.com/question/23003213/answer/56121859 ## 更新:关于ctypes,见拙作 聊聊Python ...
- Python笔记之不可不练
如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...
随机推荐
- DiyCode开源项目 AboutActivity分析
1.首先看一下效果 这是手机上显示的效果: 1.1首先是一个标题栏,左侧一个左箭头,然后一个图标. 1.2然后下方是一个可以滑动的页面. 1.3分成了7个部分. 1.4DiyCode的图标. 1.5然 ...
- sql优化系列2
sql中索引是否会用到,进而影响查询效率. 带通配符(%)的like语句 1.不能用null作索引,任何包含null值的列都将不会被包含在索引中.即使索引有多列这样的情况下,只要这些列中有一列含有nu ...
- DEDE调用指定文章ID来调用特定文档
http://www.jb51.net/cms/137423.html 代码如下: {dede:arclist row=1 idlist='6'} <li><a href=" ...
- 【Next Permutation】cpp
题目: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...
- IOS开发学习笔记027-UITableView 使用模型对象
1.模型对象 2.单组数据的显示 1.模型对象 继续优化上一个程序 上一次用到字典,但是坏处多多.这里将这些数据封装到类中. 这就是MVC中得模型,模型就是数据的显示结构 新建一个类,添加几个属性和一 ...
- Python数据分析基础——读写CSV文件
1.基础python代码: #!/usr/bin/env python3 # 可以使脚本在不同的操作系统之间具有可移植性 import sys # 导入python的内置sys模块,使得在命令行中向脚 ...
- Leetcode 518.零钱兑换II
零钱兑换II 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币有无限个. 注意: 你可以假设 0 <= amount (总金额) <= 500 ...
- java I/O类 File使用
11.3 I/O类使用 由于在IO操作中,需要使用的数据源有很多,作为一个IO技术的初学者,从读写文件开始学习IO技术是一个比较好的选择.因为文件是一种常见的数据源,而且读写文件也是程序员进行IO编程 ...
- selenium webdriver——元素定位
元素定位: >>WebDriver提供了八种元素定位方法,在Python语言中,所对应的方法如下: >>id属性定位:有唯一性 find_element_by_id(" ...
- home.php
home.php <?php error_reporting(0); //抑制所有错误信息 @header("content-Type: text/html; charset=utf- ...